1

假设我有一个 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>
4

2 回答 2

1

这行得通。

CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type GridViewRowPresenter}}, Path=DataContext}"
于 2012-07-27T22:05:02.113 回答
0

我讨厌 WPF。

创建自引用属性

将此属性添加到绑定的数据模型类:

public class MyDataObjectItem
{
    //...
    public MyDataObjectItem Self { get { return this; } }
    //...
}

那么命令参数就很简单了:

CommandParameter="{Binding Self}"

或者,显然这有效

CommandParameter="{Binding}"

https://stackoverflow.com/a/11287478/887092

于 2016-10-13T09:16:35.203 回答