Wpf XamDataGrid列可见性无法使用MVVM工作
我试图在MVVM体系结构中实现XamDataGrid列可见性,但它似乎不起作用 我正在做以下工作: 正在为未绑定字段添加Visiblility属性-Wpf XamDataGrid列可见性无法使用MVVM工作,wpf,mvvm,visibility,xamdatagrid,Wpf,Mvvm,Visibility,Xamdatagrid,我试图在MVVM体系结构中实现XamDataGrid列可见性,但它似乎不起作用 我正在做以下工作: 正在为未绑定字段添加Visiblility属性- <igDP:UnboundField Name="gridCustomerId" Label="ID" Binding="{Binding customerid, Mode=TwoWay,
<igDP:UnboundField Name="gridCustomerId"
Label="ID"
Binding="{Binding customerid,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding ShowCustomerIDColumn,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}">
然后在命令处理程序中使用以下代码:
if(ShowCustomerIDColumn == Visibility.Hidden)
ShowCustomerIDColumn = Visibility.Visible;
else
ShowCustomerIDColumn = Visibility.Hidden;
InvokePropertyChanged("ShowCustomerIDColumn");
有人有办法吗
干杯,
Anshuman可见性在此处不起作用的主要原因是因为可见性不是Fields类中的依赖属性(UnboundField类派生自Field类)与其他属性不同 请参见可见性属性 请参阅支持绑定的Label/RowSpan属性 您需要在c代码中设置可见性(在某些行为或代码隐藏事件中):
更精确的访问代码:
myXamDataGrid.FieldLayouts[0]。字段[“myFieldName”]。可见性=myVisibility
(注意:有时索引可能不同于0;注意2:您已经为(Unound)字段定义了Name
属性)
if(ShowCustomerIDColumn == Visibility.Hidden)
ShowCustomerIDColumn = Visibility.Visible;
else
ShowCustomerIDColumn = Visibility.Hidden;
InvokePropertyChanged("ShowCustomerIDColumn");
fieldlayout.Fields[node.Name].Visibility = node.Visibility ? Visibility.Visible : Visibility.Collapsed;