Tôi cần lập trình/ẩn một MenuItem, cách tốt nhất để làm điều này là gì?WPF ẩn MenuItem trên Ngữ cảnhMenu dựa trên thuộc tính đối tượng
Trả lời
Vâng, để thêm một MenuItem bạn sẽ cần một cái gì đó dọc theo những dòng:
var menuItem = new MenuItem() { Header = "Menu Name", Name = "Identifier", IsCheckable = true, IsChecked = visible };
menuItem.Click += new RoutedEventHandler(contextMenu_onClick);
int position = contextMenu.Items.Add(menuItem);
(nhưng bạn đã có thể đã nhận được điều này).
Bạn sẽ cần một số cách buộc mục menu vào thuộc tính - nhưng không thấy ứng dụng của bạn, tôi thực sự không thể đề xuất cách tốt nhất. Có thuộc tính Thẻ lưu trữ một đối tượng; thuộc tính Uid lưu trữ một chuỗi; thuộc tính Name cũng lưu trữ một chuỗi.
Trong khi:
menuItem.Visibility = Visibility.Visible;
và
menuItem.Visibility = Visibility.Collapsed;
nên chuyển đổi khả năng hiển thị của mặt hàng đó.
EDIT: Sử dụng Thu gọn sẽ ẩn mục menu và không đặt trước khoảng trống trong menu - bạn không thực sự muốn khoảng trống trong menu ngữ cảnh. (nhờ Botz3000 cho việc này)
Sau đó, trong mã của bạn thay đổi giá trị thuộc tính, bạn sẽ tìm thấy mục menu bạn muốn hiển thị/ẩn bằng liên kết tôi đã mô tả ở trên. Khi bạn có mặt hàng, bạn có thể chuyển đổi giá trị của nó:
menuItem.Visibility = menuItem.Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
Bạn có chắc chắn muốn ẩn MenuItem
? Nó là phổ biến hơn để vô hiệu hóa nó, sử dụng khuôn khổ chỉ huy của WPF:
<MenuItem Header="_MenuName" Command="{x:Static local:MyCommands.SomeCommand}" />
...
<!-- In the menu item or any of its ancestors: -->
<SomeControl.CommandBindings>
<CommandBinding Command="{x:Static local:MyCommands.SomeCommand}" Executed="Save_Executed" CanExecute="Save_CanExecture" />
</SomeControl.CommandBindings>
WPF sẽ sử dụng kết quả của bool
Save_CanExecute
để xác định xem lệnh 's MenuItem
hiện có thể thực hiện, và bật/tắt MenuItem
cho phù hợp.
- 1. Sắp xếp mảng dựa trên đối tượng thuộc tính - Javascript
- 2. Trình kích hoạt WPF dựa trên loại đối tượng
- 3. Tạo bối cảnhMenu và Ngữ cảnhMenu Mục
- 4. Thuộc tính dựa trên Gradle
- 5. Lọc NSMutableArray dựa trên thuộc tính enum
- 6. Nhận django id đối tượng dựa trên mô hình thuộc tính
- 7. Cách đặt điểm ngắt có điều kiện trong Xcode dựa trên thuộc tính chuỗi đối tượng?
- 8. Tạo ID duy nhất cho đối tượng python dựa trên các thuộc tính của nó
- 9. Chọn từ mảng đối tượng dựa trên giá trị thuộc tính trong JavaScript
- 10. Tạo thuộc tính ViewBag dựa trên chuỗi
- 11. Hiển thị ngữ cảnhMenu trên nhấp chuột trái chỉ sử dụng XAML
- 12. Cách đặt màu nền dựa trên thuộc tính bool trong WPF
- 13. Dấu gạch dưới: sortBy() dựa trên nhiều thuộc tính
- 14. Thuộc tính động Groovy trên mỗi đối tượng
- 15. python: thuộc tính trên đối tượng máy phát
- 16. Độ phân giải loại dựa trên thuộc tính trong JSON.NET
- 17. Ẩn thuộc tính khỏi thanh tra đối tượng trong delphi
- 18. Bản địa hóa các ứng dụng dựa trên MVVM dựa trên WPF
- 19. LINQ Phân biệt dựa trên tài sản của đối tượng
- 20. Áp dụng kiểu dựa trên giá trị thuộc tính
- 21. Hiển thị thuộc tính bổ sung của thuộc tính TFrame trên thanh tra đối tượng
- 22. Tạo một đối tượng dựa trên 2 người khác
- 23. Có ngôn ngữ nào với các cấp truy cập dựa trên đối tượng không?
- 24. động @PersistenceContext unitName thuộc tính cho container dựa trên EntityManager
- 25. Ràng buộc thuộc tính IsSelected của ListBoxItem vào một thuộc tính trên đối tượng từ nguồn của nó
- 26. Tìm phần tử cụ thể dựa trên một thuộc tính
- 27. Làm cách nào để xử lý các thuộc tính trên lớp Perl dựa trên SCALAR?
- 28. WinForm DataBinding Ẩn Thuộc tính trong đối tượng kinh doanh C# .NET
- 29. WPF Thiết lập kiểu dựa trên kiểu dữ liệu?
- 30. Python: BeautifulSoup - nhận được một giá trị thuộc tính dựa trên thuộc tính tên
không hiển thị. Hiển thị tốt hơn? – Botz3000
Cảm ơn - Tôi đã cập nhật câu trả lời – ChrisF