簡體   English   中英

WPF DataGrid 按鈕列禁用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM