/ / Xceed DataGridControlの列の可視性 - wpf、datagrid、visibility、xceed、col

xceed DataGridControlの列の可視性 - wpf、datagrid、visibility、xceed、col

私はxceedを持っています:バインドされたItemsSourceを持つDataGridControl。私は現在、私の目に見える列と各見える列のtitle / 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>

回答:

回答№1は0

はい、確かに私は数ヶ月前にxceedのコントロールに対処しなければなりませんでした。

DataGridControlを使用すると、列を自動生成できます。これもデフォルトの動作です。

独自の列を使用するには、プロパティを無効にする必要があります AutoCreateColumns さらに、プロパティDataGridControl.Columnsにいくつかの列を設定する必要があります。

そこにバインドすることができます 見える 列のプロパティ。

このコードを提供してくれた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>

回答№2の場合は0

私も同様の問題に直面した。

あなたは 見える 次のようにします。

<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}"/>

その後、問題を解決することができます。