【问题标题】:How to bind DataGrid.SelectedItem in DataTemplate如何在 DataTemplate 中绑定 DataGrid.SelectedItem
【发布时间】:2011-04-18 23:54:30
【问题描述】:

希望这不是一个骗局。我正在使用 Silverlight 4。

我的 ViewModel MyVM 中有一个集合 MyProjects 绑定到数据网格 MainDataGrid

我还有一个 RowDetailsTemplate 来显示几个按钮。

我在这些按钮上有命令绑定。命令绑定 Command="{Binding Path=EditCommand}" 似乎可以正常工作,但我无法让 CommandParameter 绑定正常工作。元素名称是否在 DataTemplate 中工作?通过 DataTemplate 中的 CommandParameter 绑定传入 SelectedItem/SelectedDataRow 的最佳方式是什么?

感谢您的帮助。

        <sdk:DataGrid x:Name="MainDataGrid" AutoGenerateColumns="False" DataContext="{StaticResource MyVM}" ItemsSource="{Binding MyProjects}" RowDetailsVisibilityMode="VisibleWhenSelected">

            <sdk:DataGrid.RowDetailsTemplate>
                <DataTemplate>
                    <StackPanel Background="Ivory" Orientation="Horizontal">
                        <Button Style="{StaticResource DataGridRowDetailsButtonStyle}"
                                Command="{Binding Path=EditCommand}" 
                                CommandParameter="{Binding ElementName=MainDataGrid, Path=SelectedItem}">Edit</Button>

【问题讨论】:

    标签: silverlight-4.0


    【解决方案1】:

    如何在视图模型(定义 EditCommand 的地方)中添加属性“MySelectedItem”并将其绑定到数据网格的 selectedItem。

    <sdk:DataGrid x:Name="MyDataGrid" SelectedItem="{Binding MySelectedItem, Mode=TwoWay}" SelectedItem="{Binding MySelectedItem}">
    

    那么你可能会这样做

    CommandParameter="{Binding MySelectedItem}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 2012-07-14
      • 2017-08-26
      • 2011-05-11
      • 2017-02-18
      相关资源
      最近更新 更多