Tôi có một mô hình có thuộc tính enum (trong trường hợp này, liên quan đến Quy định kiểm soát xuất khẩu). Khi hiển thị giá trị cho người dùng, tôi muốn hiển thị một chuỗi tương ứng. Đôi khi điều này là trong ComboBox (nơi người dùng có thể chọn một giá trị), và đôi khi nó là trong một TextBlock (nơi nó là chỉ đọc).Bind textblock vào giá trị từ điển cho khóa trong XAML?
Ví dụ: đối với ExportRegulationType.EAR
, tôi muốn hiển thị "EAR"
, trong khi đối với ExportRegulationType.DoNotExport
, tôi muốn hiển thị "Do Not Export"
. Lưu ý rằng tôi không có bất kỳ nhu cầu ngôn ngữ nào, nhưng tôi nhận ra vấn đề này ...
Hiện tại, trong ViewModel, tôi có thuộc tính trả về chuỗi dựa trên giá trị enum hiện tại và cũng là một thuộc tính khác trả về một số Dictionary<ExportRegulationType, string>
. Đối với ComboBoxes, tôi có thể liên kết ItemsSource
với thuộc tính từ điển và đối với TextBlocks, tôi có thể liên kết với thuộc tính chuỗi. Điều này hoạt động, nhưng là loại vụng về.
Hai câu hỏi:
1) Dường như với tôi rằng tôi sẽ có thể tuyên bố từ điển (với các phím và các giá trị) như một nguồn lực tĩnh trong XAML (có thể là trong App.xaml), và sử dụng cho ItemsSource cho phiên bản ComboBox. Tuy nhiên, tôi không thể tìm ra cách khai báo và tham chiếu một thứ như thế. Làm thế nào tôi có thể làm điều đó?
2) Giả sử ở trên là đúng chỗ, tôi nghĩ rằng tôi cũng có thể thiết lập một ràng buộc với textblock, do đó dựa trên thuộc tính enum, nó sẽ tra cứu chuỗi trong từ điển.
Tôi đã thấy các câu hỏi sau liên quan đến giá trị en2 static hoặc dynamic enum. Đầu tiên không đầy đủ và thứ hai không được trả lời ...
Đây chỉ là một XAML và sẽ cho phép tôi xóa các phương thức khỏi ViewModel của tôi (chỉ có tài sản được hiển thị ExportRegulationType
được liệt kê. là những thể
chỉnh sửa: thông tin thêm:.
trong ứng dụng, tôi sẽ có nhiều bộ khác nhau của quan điểm, mô hình, và ViewModels Tuy nhiên, như các quy định kiểm soát xuất khẩu là một yêu cầu chung và nhất quán, Tôi đang sử dụng thành phần để giữ cho nó khô, ví dụ, mô hình A và B cả hai đều có một mô hình ExportControl. ViewModels A1, A2, B1 và B2 sẽ ha có một ExportControlViewModel. Các khung nhìn sẽ có các điều khiển gắn với ExportControlViewModel của ViewModel của chúng. Các khung nhìn sẽ có một ComboBox hoặc một TextBlock, nhưng không phải cả hai (Tùy thuộc vào nếu người dùng có thể thay đổi giá trị).
Đã thêm C# làm Thẻ để các câu trả lời có cú pháp tô sáng –