• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

当ItemSource是Observable集合时隐藏DataGrid中的列

c/c++ 来源:Ryan Searle 3次浏览

我有DataGrid其中ItemSource是使用MVVM原型的Observable集合绑定。我想不显示我的DataGrid中显示的类的ID属性,但我仍然需要该属性存在。当ItemSource是Observable集合时隐藏DataGrid中的列

我的代码:

XAML

<DataGrid ItemsSource="{Binding MyData}" IsReadOnly="True" Name="dtSearch" /> 

视图模型

private ObservableCollection<MyDataClass> myData; 
    public ObservableCollection<MyDataClass> MyData 
    { 
     get { return myData; } 
     set 
     { 
      myData= value; 
      RaisePropertyChanged("MyData"); 
     } 
    } 

可观察类

public partial class MyDataClass 
{ 
    public int ID { get; set; } 
    public string Code { get; set; } 
    public string Name { get; set; } 
    public string Type { get; set; } 
} 

是否有在致敬我可以给我的身份证物业来掩盖它从DataGrid

我是否需要为可见属性创建另一个类?

一些指导将是伟大的!


===========解决方案如下:

无论数据是否存在于ObservableCollection中,都会发生此问题。

要解决此问题,必须将网格设置为不自动生成列。这是通过设置AutoGenerateColumns=False然后在xaml中指定所需的列来完成的。

<DataGrid ItemsSource="{Binding MyData}" AutoGenerateColumns="False" > 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="The Code" 
          Binding="{Binding Code}"/> 
     <DataGridTextColumn Header="The Name" 
          Binding="{Binding Name}"/> 
     <DataGridTextColumn Header="The Type" 
          Binding="{Binding Type}"/> 
    </DataGrid.Columns> 
    </DataGrid> 

查看DataGrid文档中的更多列选项。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)