データグリッドがあります。データグリッドは、Webサービスから取得したデータによってプログラムによって作成されます。データグリッドの最後の列にはチェックボックスがあり、マップ上の各行の値を表示することができます。WPF DataGrid - バインドせずにテンプレート列のチェックボックスを設定するには?
DataGridTemplateColumn column = new DataGridTemplateColumn();
column.Header = "Show on map";
DataTemplate dt = new DataTemplate();
FrameworkElementFactory checkBoxFactory = new FrameworkElementFactory(typeof(CheckBox));
checkBoxFactory.AddHandler(CheckBox.ClickEvent, new RoutedEventHandler(CheckBoxClicked), true);
dt.VisualTree = checkBoxFactory;
column.CellTemplate = dt;
DataGrid.Columns.Add(column);
ユーザがチェックボックスのいずれかをクリックすると、CheckBoxClicked
方法は、(既に述べたように)呼び出され、地図上のアイコンとして対応する行の値を表示する:カラムは、このようなテンプレートのカラムを使用して作成され。これは非常にうまくいく。しかしながら、ユーザは、データグリッドを含むウィンドウを閉じることができるが、マップは、表示されたアイコンとともに画面上にとどまる。
ここで、ユーザーがデータグリッドを使用してウィンドウを開くと、既に表示されているアイコンに従って、チェックボックスを事前に選択したいと思います。チェックボックスにはバインディングがないので、アイコンと一致させることができません。 これはどのように行うことができますか?プログラムで事前に選択する方法はありますか?またはバインディングを作成する方法はまだありますか?
XAMLを使用してUIを設定してください。 – Hosch250
これはしばらくしていませんが、WinFormsスタイルと同様に、設定できる各チェックボックスに 'IsChecked'プロパティがあるはずです。それ以外の場合は、XAMLを使用してUIを設定し、バインディングを簡単に使用することをお勧めします。 – Hosch250
まあ、ありがとう。しかし、コンテンツは非常に動的であり、XAMLで設定することはできません。 –