当选择时,更改网格行的背景颜色

22 浏览
0 Comments

当选择时,更改网格行的背景颜色

我的itemscontrol目前可以正确加载每一行。我试图在用户选择时改变每一行的背景颜色。


                    
                        
                        
                        
                    
                    
                        
                    
                    
                        
                        
                        数据库
                    
                    
                        
                            
                            
                            
                            
                            
                            
                        
                        
                        
                    
                        
                                                           
                                 
                                    
                                        
                                        
                                        
                                        
                                        
                                        
                                    
                                    
                                    

目前的效果如下:

enter image description here

我尝试添加了一个DataTemplate.Triggers,但似乎没有起作用。如何准确地检测itemscontrol中的某一行是否被选择?我找到的唯一示例都使用了datagrid。我试图将我的itemscontrol更改为datagrid,但无法加载数据。

Datagrid:

  
                                    
                                    

只显示了一堆线条,每行没有数据。

我对WPF非常陌生,所以无法弄清楚我在这里做错了什么。

0
0 Comments

问题出现的原因是需要在选中网格行时更改背景颜色,解决方法是使用DataGrid控件并结合MVVM模式来实现。

在Window.xaml文件中,使用了一个Grid布局,其中包含一个StackPanel和一个DataGrid控件。DataGrid控件的AutoGenerateColumns属性设置为False,ItemsSource属性绑定到了SourceData属性,用于显示数据源。DataGrid的列设置包括ServerName、SourceDatabase、DestinationDatabase和Status,其中Status列使用了DataGridTemplateColumn,并绑定了一个按钮的内容和命令。

在ViewModel类中,定义了一个ObservableCollection集合SourceData,用于存储数据源。Initialize方法初始化了SourceData集合,其中包括了三个DataSource对象。

DataSource类定义了Status、ServerName、SourceDatabase和DestinationDatabase属性,用于存储网格行的数据。

最后,图片展示了运行结果。

以上是解决问题的原因和方法的整理。

0