绑定gridview行上的每个项目

时间:2012-07-27 21:19:33

标签: c# wpf binding commandparameter

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

2 个答案:

答案 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}"

请参阅https://stackoverflow.com/a/11287478/887092

相关问题