Wpf XamDataGrid列可见性无法使用MVVM工作

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,

我试图在MVVM体系结构中实现XamDataGrid列可见性,但它似乎不起作用

我正在做以下工作:

正在为未绑定字段添加Visiblility属性-

<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;