【问题标题】:datagrid datacolumn_type "button" binding doesn`t workdatagrid datacolumn_type“按钮”绑定不起作用
【发布时间】:2013-03-05 10:15:01
【问题描述】:

我正在尝试在DataGrid 的每一行中创建一个Button,使用以下代码:

<DataGrid SelectionMode="Single" ItemsSource="{Binding Path=SettingsCollection}" SelectedItem="{Binding SelectedSettings, Mode=TwoWay}" AutoGenerateColumns="False" Height="Auto" HorizontalAlignment="Stretch" Margin="5" Name="dataGrid1" VerticalAlignment="Stretch" Width="Auto" Grid.Row="1" CanUserAddRows="False">
    <DataGrid.Columns>
         <DataGridTemplateColumn Header="" CanUserResize="False" Width="38*" >
              <DataGridTemplateColumn.CellTemplate>
                   <DataTemplate>
                       <Button Command="{Binding ShowAdvancedSettings}" Name="btn" Visibility="Visible" Height="Auto" Width="Auto"  />
                   </DataTemplate>
              </DataGridTemplateColumn.CellTemplate>
         </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

绑定不起作用。我做错了什么?

【问题讨论】:

  • 请描述是什么不工作。按钮不显示?按钮不响应点击?还有什么?
  • 尝试使用 snoop 查看是否存在绑定错误或绑定数据是否存在。
  • 按钮可以,但是命令绑定没有t work. Nothing is happen when I try to click. As I understand I have to use "Click", but Im 不确定 MVVM 模式是否可以。对不起我的语法。

标签: c# wpf mvvm datagrid


【解决方案1】:

确保命令“ShowAdvancedSettings”是 1-公开 2- 放置在代表数据网格上显示的对象的类上,而不是数据网格的视图模型上,即不是 SettingsCollection 所在的位置。

例如你有 一个名为 DataGridViewModel 的类,它有一个属性 List&lt;DataItemClass&gt; SettingsCollection;

属性ShowAdvancedSettings应该在类DataItemClass

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    相关资源
    最近更新 更多