私はにDataGrid
バインドされていObservableCollection
ます。colsを動的に追加します。Cols strucは1番目のcolはTextBlockで、残りはすべてButtonsです。ボタンに特定の問題があります:
その列にコマンドを設定し、2つのパラメーター(文字列、文字列)を使用して関数「OpenTORWindow」を呼び出します。どうやって設定すればいいのかわからない。colsを追加するコードは次のとおりです:
FrameworkElementFactory buttonTemplate = null;
for (int i = 0; i < GlobalUtils.TOR_List.Count; i++)
{
buttonTemplate = new FrameworkElementFactory(typeof(Button));
switch (i) {
case 0:
buttonTemplate.SetBinding(Button.ContentProperty,
new Binding("CLVButtonText"));
break;
case 1:
buttonTemplate.SetBinding(Button.ContentProperty,
new Binding("MKBLButtonText"));
break;
}
buttonTemplate.SetBinding(Button.CommandProperty, new Binding("MyCommand"));
RoutedEventHandler handler = new RoutedEventHandler(OpenNewWindow);
buttonTemplate.AddHandler(Button.ClickEvent, handler, true);
this.seivesTorGrid.Columns.Add(new DataGridTemplateColumn()
{
Header = GlobalUtils.TOR_List[i].TOR_Id,
CellTemplate = new DataTemplate() { VisualTree = buttonTemplate }
});
}
MyCommandに次のものを割り当てます。
MyCommand = new RelayCommand(param => this.OpenWindow(s.SeiveIdSize))
ただし、MyCommandがトリガーされることはありません。次に、AddHandlerを追加しました。これは機能しています。CommandPropertyが機能しない理由。