MVVM Silverlight DataGrid:绑定列集合

时间:2013-12-02 09:15:21

标签: c# .net silverlight mvvm datagrid

我需要在我的模型类中访问数据网格的列集合,但是当我尝试这个时,它表示数据网格的columns属性没有可访问的setter。

那么在模型类中访问Columns属性有什么变通方法吗?

我的XAML代码是这样的:

<sdk:DataGrid RowDetailsVisibilityMode="VisibleWhenSelected"  Columns="{Binding GridColumns, Mode=TwoWay}"
                      AutoGenerateColumns="False" IsReadOnly="True" SelectionMode="Single" 
                      ClipboardCopyMode="ExcludeHeader" HorizontalAlignment="Stretch" 
                      VerticalAlignment="Stretch" Margin="0,0,0,27" HeadersVisibility="Column" Grid.Row="1"
                      SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
                      ItemsSource="{Binding DataList, Mode=TwoWay, ValidatesOnDataErrors=True, NotifyOnValidationError=True}" >

1 个答案:

答案 0 :(得分:1)

您不能绑定到Columns属性,因为它不是DependencyProperty。因此,如果您需要从其他位置传递列,请从代码中添加列。如果它们不依赖于上下文,那么在XAML中分配它们可能会更好。

另一方面,“我的模型中访问数据网格的列集合”听起来对MVVM来说相当奇怪。通常模型甚至不知道DataGrid是什么。