0

我有一个带有边界 ItemsSource 的 xceed:DataGridControl。目前我正在尝试为每个可见列设置我的 in/visible 列和标题/headertext。最好我想在我的 ViewModel 中绑定一个属性,以设置 in/visible 列及其标题。但我发现我没有办法做到这一点。有谁知道这个问题的解决方案?

<xceed:DataGridControl
    x:Name="dataGridControl"
    SelectedItem="{Binding SelectedTextItem, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
    ItemsSource="{Binding ItemsSourceData, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" >
</xceed:DataGridControl>
4

2 回答 2

0

是的,几个月前我确实不得不处理 xceed 的控制。

DataGridControl 允许您自动生成列。这也是它的默认行为。

为了拥有自己的列,您必须禁用属性AutoCreateColumns,此外,您必须在属性 DataGridControl.Columns 上设置一些列。

在那里,您将能够绑定Column 的Visible属性。

感谢 Peter 提供此代码:

<xceed:DataGridControl ItemsSource="{Binding TextSet}" > 
  <xceed:DataGridControl.Columns>
    <xceed:Column FieldName="ColumnId" Title="{Binding DatagridTitle[ColumnId], Mode=OneWay}" Visible="True" />
  </xceed:DataGridControl.Columns>
</xceed:DataGridControl>
于 2013-11-08T16:09:40.537 回答
0

我也遇到了类似的问题。

您可以使用Visible属性,然后执行以下操作:

<xcdg:ColumnFieldName="ColumnId" Title="ColumnId" 
Visible="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type typeOfAncestor}}, Path=DataGridControl.DataContext.BooleanSourceProperty}"/>

例如,如果typeOfAncestorxcdg:MergedColumn并且BooleanSourcePropertyIsVisble,那么代码应该是:

<xcdg:ColumnFieldName="ColumnId" Title="ColumnId"
Visible="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type xcdg:MergedColumn}}, Path=DataGridControl.DataContext.IsVisible}"/>

那么问题就可以解决了。

于 2018-07-24T00:07:02.680 回答