私はWpfを使用していますが、List<Value>
をxamlの<ItemsControl>
に渡しています。 Value
オブジェクトのstring
をボタンのコマンドにバインドしたいと思います。このXAML部分は次のようになります。バインディングからのDataTemplateボタンコマンド
<Grid Margin="0,0,2,0">
<Grid Margin="10">
<ItemsControl Name="details">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Margin="0,0,0,5">
<Grid.ColumnDefinitions>
....
</Grid.ColumnDefinitions>
...
<Button Grid.Column="2"
Content="{Binding ButtonContent}"
Visibility="{Binding ButtonVisibility}"
Command="{Binding ButtonClickMethod}" />
...
マイValue
クラスは次のようになります。
public class Value
{
...
public string ButtonClickMethod { get; set; }
}
私は、文字列のリンクを設定していますが、この:
v.ButtonClickMethod = "RelatedActivityId_OnClick";
及び方法がです同じクラスで、次のようになります。
private void RelatedActivityId_OnClick(object sender, RoutedEventArgs e)
{
MessageBox.Show("RelatedActivityId_OnClick");
}
これ以外のものはすべて正しく動作しており、同じオブジェクトをバインディングに使用します。 私は何が間違っていますか?
したがって、文字列 'ButtonClickMethod'には実行するメソッドの名前が含まれていますか? –
はい、もう少しコードを追加しました – CoookieMonster