如何在wpf中传递dataGrid的列作为参数?

时间:2016-02-21 17:18:00

标签: c# wpf datagrid

我有一个DataSrid,ItemsSource是List<string>。 第二列是ComboBox,它也绑定到List<string>,但另一列。

当用户点击按钮时,我想在命令功能中看到两个要传递的参数:绿色和红色。那么,怎么做呢?

enter image description here

所以在我的按钮栏中,我希望看到像:

<DataGridTemplateColumn>
  <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
       <Button Content="click"
         Command="{Binding DataContext.ListenCmd, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" 
         Margin="5,5">
         <Button.CommandParameter>
            <MultiBinding Converter="{StaticResource MultiConverter}">
              <Binding Path="--First Column Value--"/>
              <Binding Path="--Second Column Value--"/>
             </MultiBinding>
        </Button.CommandParameter>
      </Button>
     </DataTemplate>
  </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

1 个答案:

答案 0 :(得分:0)

将Multibining用作:

<MultiBinding Converter="{StaticResource MultiConverter}">
   <Binding RelativeSource="{RelativeSource AncestorType={x:Type DataGridCellsPanel}}" Path="Children[0].Content.Text"/>
    <Binding RelativeSource="{RelativeSource AncestorType={x:Type DataGridCellsPanel}}" Path="Children[1].Content.Text"/>
</MultiBinding>

我希望您在MultiConverter中有一个逻辑将两个值封装到一个object中。

  

如果您使用任何复杂的DataGridCell Template,则上述绑定可能会导致问题。