【问题标题】:WPF: Command bindings for Buttons in datagridsWPF:数据网格中按钮的命令绑定
【发布时间】:2010-07-27 21:20:25
【问题描述】:

在这个示例中,我有两个按钮。标题中的按钮有效,但网格中的按钮给了我下面的错误显示。

<GroupBox DockPanel.Dock="Top" >
    <GroupBox.Header>
        <StackPanel Orientation="Horizontal">
            <Label Content="Recent Servers" />
            <CheckBox Content="Auto-Refresh" />
            <Button Content="Monitor" Command="{Binding MonitorCommand, ElementName=Top}"  CommandParameter="{Binding}" />
        </StackPanel>
    </GroupBox.Header>
    <DataGrid CanUserAddRows="False" CanUserDeleteRows="False" AutoGenerateColumns="False" ItemsSource="{Binding ServerHistory}" >
        <DataGrid.Columns>
            <DataGridTextColumn Header="Machine Name" Binding="{Binding DataPoints[ServerName], Mode=OneWay}" />
            <DataGridTextColumn Header="Last Heartbeat" Binding="{Binding DataPoints[LastHeartbeat], Mode=OneWay}"/>
            <DataGridTemplateColumn Header="Monitor">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button Content="Monitor" Command="{Binding MonitorCommand, ElementName=Top}"  CommandParameter="{Binding}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>
</GroupBox>

System.Windows.Data 错误:4:找不到与引用“ElementName=Top”进行绑定的源。 BindingExpression:Path=MonitorCommand;数据项=空;目标元素是 'Button' (Name='');目标属性是“Command”(输入“ICommand”)

【问题讨论】:

标签: wpf binding wpfdatagrid


【解决方案1】:

我相信这是因为您的第二个按钮包含在模板中。改为有一个点击事件,在后面的代码中抓取它并尝试计算发送者与您的数据的关系,然后发出命令触发器。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-09-16
  • 2018-09-27
  • 2015-06-07
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
  • 2012-01-29
  • 2010-10-09
相关资源
最近更新 更多