[英]WPF DataGrid Button Column Disable
是否可以禁用 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>
Button 的用途是啟動記錄到與該行關聯的 object 的計時器。 我的計時器代碼工作正常,但我還想禁用每隔一行的按鈕,以便您只能運行一個計時器。
我用了
WorkItemGrid.Columns[WorkItemGrid.Columns.Count - 1].GetCellContent(item).IsEnabled = false
禁用它並且所有按鈕正確顯示為禁用,但是如果您單擊該按鈕兩次,它將重新啟用並允許您第三次單擊它並觸發 Click 事件。 是否可以實際禁用該按鈕?
我將擁有 object,Datagrid 必須公開一個“IsEnabled”boolean 屬性,我可以將按鈕綁定到該屬性。 每當調用處理程序時,只需從原始集合中獲取另一個 object 並將它們的屬性更改為 false。 這將自動禁用其他按鈕。
如果您無法控制“計時器”class,您可以在將網格數據綁定到對象集合之前將其包裝在您自己的 class 中。
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>
如果除了其他按鈕之外,還可以禁用單擊的按鈕,那么我會將Button.IsEnabled
綁定到一個屬性,該屬性在計時器啟動后設置為false
,然后在操作完成后將其更改回true
.
如果這是不可接受的,那么我不確定是否有辦法做到這一點,因為根據定義,模板用於在每一行中創建控件。 好吧,您可以搜索所有其他按鈕的可視化樹,但這似乎不是一件好事(更不用說對於大量數據它可能會很慢)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.