GridViewの列見出し内にコントロールの埋め込みをテンプレートする方法が見つかりました。しかし、私はどのように項目をそれらを埋めるために私のコードを使用してコントロールを見つけるか分からない。私は組み込みコントロールから発生したイベントにどのように応答し、それがどの列にあるかを判断する方法を見つけました。そうでなければ、埋め込みComboBoxへの参照を取得する方法がわかりません。GridViewColumn HeaderTemplate内でコンボボックスにアクセスするにはどうすればよいですか?
あなたのアイデア与えるためにいくつかのコード:すべてのコンボボックスがいることを考え、データバインディングを使用してから選択する項目の同じリストを持っていた場合
GridView grdView = new GridView();
for (int column = 1; column <= context.data.GetLength(1); column++)
{
GridViewColumn gvc = new GridViewColumn();
gvc.DisplayMemberBinding = new Binding(column.ToString());
gvc.Header = column.ToString();
gvc.Width = 120;
gvc.HeaderTemplate = (DataTemplate)this.Resources["ComboHeaderTemplate"];
grdView.Columns.Add(gvc);
}
ListView1.View = grdView;
ListView1.ItemsSource = dt.DefaultView;
:
<Page.Resources>
<DataTemplate x:Key="ComboHeaderTemplate">
<DockPanel>
<ComboBox Name="columnHeading" />
</DockPanel>
</DataTemplate>
</Page.Resources>
そして、コードビハインドでの各列に一意の値を選択できる限り、問題はありません。
()私はのSystem.InvalidOperationExceptionがユーザーコード メッセージ= 'System.Windows.Controls.GridViewColumnによって未処理だっ取得していますです'はVisualまたはVisual3Dではありません。 PageFunctionクラスを使用していますが、違いがある場合はルートのウィンドウではありません。 –