次のクラスがあります:
public class GridViewControlModel : NotificationObject
{
DataTable datasource;
public DataTable Datasource
{
get
{
return datasource;
}
set
{
datasource = value;
RaisePropertyChanged("Datasource");
}
}
ObservableCollection<string> fieldsNames;
public ObservableCollection<string> FieldsNames
{
get
{
if (fieldsNames == null)
{
fieldsNames = new ObservableCollection<string>();
}
return fieldsNames;
}
set
{
fieldsNames = value;
RaisePropertyChanged("FieldsNames");
}
}
//and more properties
}
プロパティ「FieldsNames」には、GridViewデータ列ヘッダーにバインドする列ヘッダーのリストが含まれています。
ViewModelで、プロパティ--GridViewControlModel CurrentGridViewDataを作成し、GridView列ヘッダーをCurrentGridViewData.FieldsNames[indexes]にバインドしたいと思います。
例えば
<dxg:GridColumn1 Header="{Binding CurrentGridViewData, Path=CurrentGridViewData.FieldsNames[0]}">
<dxg:GridColumn2 Header="{Binding CurrentGridViewData, Path=CurrentGridViewData.FieldsNames[1]}">
など...DevExpressgridCointrolを使用していますが、問題はないと思います。
プロパティを特定のObservableCollectionインデックスにバインドするにはどうすればよいですか?
私がやろうとしていることを説明します。私は多くのビューを持つGridControlを持っています。ユーザーがビューを切り替えるとき、グリッドコントロールはその構造全体を変更する必要があります(列の数、列ヘッダー、列サイズ、タイプなどが異なります)。各ビューのすべてのプロパティと設定を含むクラス(私の質問からのこのCurrentGridViewDataクラス)を作成し、ユーザーがビューを切り替えるときに、CurrentGridViewDataの参照を正しいビューインスタンスに変更し、バインドによってすべてのグリッドを変更します。もっと良い方法はありますか?
ありがとう
ありがとう
DevExpressGridControlに関連する可能な解決策を見つけたと思います。次のリンクを見てください http://documentation.devexpress.com/#wpf/CustomDocument10121
何を考えてるの?DataTemplateを使用するよりも優れたアプローチですか?
ありがとう