【问题标题】:WPF DataGrid Button Column DisableWPF DataGrid 按钮列禁用
【发布时间】:2009-03-11 16:25:10
【问题描述】:

是否可以禁用 DataGridTemplateColumn 中的按钮?我有一个 DataGridTemplate 如下:

<toolkit:DataGridTemplateColumn Header="Timer" Width="50">
                    <toolkit:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Button Content="Start" Click="Button_Click" CommandParameter="{Binding}" />
                        </DataTemplate>
                    </toolkit:DataGridTemplateColumn.CellTemplate>
                </toolkit:DataGridTemplateColumn>

按钮的目的是启动一个记录到与该行关联的对象的计时器。我的计时器代码工作正常,但我还想禁用每隔一行的按钮,以便您只能运行一个计时器。

我用过

WorkItemGrid.Columns[WorkItemGrid.Columns.Count - 1].GetCellContent(item).IsEnabled = false

禁用它并且所有按钮正确显示为禁用,但是如果您单击该按钮两次,它将重新启用并允许您第三次单击它并触发 Click 事件。是否可以实际禁用按钮?

【问题讨论】:

    标签: wpf datagrid


    【解决方案1】:

    我会让 Datagrid 绑定的对象公开一个“IsEnabled”布尔属性,我可以将按钮绑定到该属性。每当调用处理程序时,只需从原始集合中获取另一个对象并将它们的属性更改为 false。这将自动禁用其他按钮。

    如果您无法控制“计时器”类,则可以在将网格数据绑定到对象集合之前将其包装在您自己的类中。

    【讨论】:

      【解决方案2】:

      如果可以接受除了其他按钮之外禁用单击的按钮,那么我会将Button.IsEnabled 绑定到设置为false 的属性,一旦计时器启动,然后将其更改回@ 987654323@ 操作完成后。

      如果这是不可接受的,那么我不确定是否有办法做到这一点,因为根据定义,模板用于在每一行中创建控件。好吧,您可以在可视化树中搜索所有其他按钮,但这似乎不是一件好事(更不用说它对于大量数据可能会很慢)。

      【讨论】:

      • 我也是这样,但我需要能够让被点击的按钮保持启用状态。单击的按钮需要更改为不同的内容,其余按钮需要禁用。
      【解决方案3】:
      its not working in my case. 
      
                                            <DataGridTemplateColumn Width="70" Header="Refund" >
                                  <DataGridTemplateColumn.CellTemplate>
                                      <DataTemplate>
                                          <Button x:Name="btnRefundGame" IsEnabled="{Binding RESUND_STATUS}" CommandParameter="{Binding Path=IDEN_LOGID}" Content="Refund" Click="btnRefundGame_Click"   ></Button>
                                      </DataTemplate>
                                  </DataGridTemplateColumn.CellTemplate>
                              </DataGridTemplateColumn> 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-03
        • 2013-01-23
        • 1970-01-01
        • 2017-06-06
        • 2011-06-06
        • 1970-01-01
        • 2012-10-04
        相关资源
        最近更新 更多