假设我有一个XAML标记,如下所示。如何将按钮的命令参数绑定到每一行。请显示最合适的绑定表达式。
<ListView ItemsSource="{Binding Items}">
<ListView.View>
<GridView>
<GridViewColumn Header="Items" Width="Auto">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name, Mode=OneWay}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="" Width="Auto">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button MinWidth="100" Command="{Binding DeleteCommand}" CommandParameter="{Binding <EXPRESSION>}" >Delete</Button>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<ListView.View>
</ListView>
答案 0 :(得分:1)
这很有效。
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type GridViewRowPresenter}}, Path=DataContext}"
答案 1 :(得分:0)
我讨厌WPF。
创建自引用属性
将此属性添加到绑定的datamodel类:
public class MyDataObjectItem
{
//...
public MyDataObjectItem Self { get { return this; } }
//...
}
然后命令参数很简单:
CommandParameter="{Binding Self}"
或者,显然这是有效的
CommandParameter="{Binding}"