0
の列を動的に管理したい場合は、ListBox
から選択した列のみを表示する必要があります。WPF MVVM Light列を動的に管理するためにDataGrid AutogeneratingColumnイベントをトリガーできません
MVVM Lightツールキットを使用しています。AutoGeneratingColumns
イベントを使用して起動しようとすると機能しません。 DataGrid
の第1世代でさえ、決して誘発することはありません。
private void dgArticles_ColumnGeneration(DataGridAutoGeneratingColumnEventArgs args)
{
string headername = args.Column.Header.ToString();
foreach (Champ c in LstSelected)
{
if (headername != c.Libelle)
{
args.Cancel = true;
}
args.Column.Header = c.Libelle;
}
}
そして、これがDataGrid
のための私の見解のXAMLコードです:
これは私のviewmodelコードで、最終的な目的に
<DataGrid Name="dgArticles"
IsEnabled="True"
Grid.Column="2"
Grid.Row="1"
AutoGenerateColumns="True"
ItemsSource="{Binding LstArticles}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="AutoGeneratingColumn">
<Command:EventToCommand Command="{Binding GenerateColumns}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
、私はトリガーするButton
を使用したいですDataGrid
をリフレッシュするこのイベントは、ユーザーがListBox
で選択したフィールドを変更したときに発生します。
ありがとうございました!
EDIT:もちろん私は私のVMのコンストラクタで私のコマンドを宣言します。
public ExportViewModel()
{
GenerateColumns = new RelayCommand<DataGridAutoGeneratingColumnEventArgs>(dgArticles_ColumnGeneration);
LstSelected = new ObservableCollection<Champ>();
LstArticles = exp.ListerArticles();
}