我有兩個DataGrid,我想根據是否在另一個DataGrid中選擇了精確的1個元素來啓用/禁用。在WPF中完成這種依賴控制的最簡單方法是什麼?讓一個控件基於另一個控件啓用/禁用
0
A
回答
2
你可以使用一個觸發器:
<DataGrid.Style>
<Style TargetType="DataGrid">
<Setter Property="IsEnabled" Value="False"/>
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedItems.Count,
ElementName=datagrid1}"
Value="1">
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Style>
0
這是我的快速破解:
tablesControl.SelectionChanged += (sender, sce) =>
{
var c = tablesControl.SelectedItems.Count;
var orderingPossible = c == 1;
itemsControl.IsEnabled = orderingPossible;
};
0
在第一格有當您單擊該單元格被解僱的事件或命令,在這種情況下,你需要有你可以設置一些布爾屬性false,然後將Enabled屬性綁定到這個布爾值。如果您使用的MVVM這將是很容易的,看看這個怎麼看 - http://www.youtube.com/watch?v=tKfpvs7ZIyo
1
您可以:
- 創建
IValueConverter
,也許它是從一個叫NotEqualToOneBooleanConverter
- 綁定
IsEnabled
DataGrid
到SelectedItems.Count
另 - 坐落在此
Binding
的Converter
是NotEqualToOneBooleanConverter
這種方法很好,因爲一旦你的轉換器被創建,它可以應用於整個XAML以及任何類型和任何屬性(不僅僅是DataGrid
或SelectedItems.Count
)。爲了使它更加靈活,你可以有一個更通用的轉換器版本,它可以比較從XAML直接指定的任何兩個值(一個來自Binding
,另一個被指定爲Converter
的屬性)。
這種方法的缺點 - 僅限於XAML,難以測試,特別是如果您試圖實現的是業務需求而不僅僅是圖形效果。
希望這會有所幫助!
相關問題
- 1. 基於WPF中多個控件的值啓用/禁用控件
- 2. 在另一個控件中禁用一個控件的按鈕
- 3. 更新基於另一個Web用戶控件的Web用戶控件
- 4. 如何啓用/禁用一組控件?
- 5. WPF GridView控件SetReadOnly或啓用基於一個複選框
- 6. 動態啓用GridView中的ASP.net按鈕基於GridView中的另一個控件
- 7. 使用另一個用戶控件的MVVM啓用/禁用按鈕
- 8. 基於條件禁用驗證控件
- 9. 從另一個用戶控件引用用戶控件
- 10. 從另一個用戶控件引用用戶控件
- 11. 從另一種形式禁用控件
- 12. 無法在同一個塊中啓用禁用的控件
- 13. 啓用/禁用基於另一個單選按鈕
- 14. 從另一個用戶控件設置一個用戶控件的文本框
- 15. 如何將一個用戶控件放入另一個用戶控件
- 16. 如何使用c#訪問一個用戶控件到另一個控件?
- 17. 將信息從一個用戶控件傳遞到另一個用戶控件
- 18. 如何從一個用戶控件導航到另一個用戶控件
- 19. 從一個用戶控件重定向到另一個用戶控件
- 20. 在另一個用戶控件中移動用戶控件
- 21. WPF用戶控件另一個用戶控件
- 22. ASP.NET從另一個用戶控件刷新用戶控件
- 23. 用戶控件從另一個用戶控件繼承
- 24. 從另一個用戶控件打開c#用戶控件
- 25. 如何從一個控件調用事件處理程序到第二個控件位於第一個控件內的另一個控件?
- 26. 娛樂的用戶控制中的動態控件基於在另一個用戶控件中的選擇
- 27. AS3組件參數基於另一個參數值啓用/禁用
- 28. 相對於在另一個用戶控件發現一個samewindow一個CheckBoxControl覈對房產禁用一個用戶控件通過XAML
- 29. 控制asp.net中的另一個控件禁用服務器端事件?
- 30. 如何將一個控件綁定到另一個控件?
Muchos格拉西亞斯!我認爲'這會做到這一點。 –