Tôi có một điều khiển Nút như một nguồn lực trong từ điển tài nguyên như sau:Điều khiển WPF là StaticResource trong Từ điển tài nguyên, được sử dụng trong nhiều Windows WPF?
<!--ButtonResources.xaml file-->
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Button x:Key="buttonResource" Content={Binding BoundText}/>
</ResourceDictionary>
<!--ButtonResources.xaml file-->
tôi hiện nay sử dụng nút trên điều khiển này ràng buộc để sở hữu nội dung của ContentControl khiển trong 2 Windows file .xaml khác nhau trong đó mỗi Window
có DataContext
riêng và do đó mỗi cửa sổ sẽ hiển thị điều khiển nút Content
của nút trên dựa trên giá trị thuộc tính ViewModel's
BoundText
như sau cho mỗi Cửa sổ.
<Window x:Class="TestClass1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ButtonResources.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid>
<ContentControl Content={StaticResource buttonResource}/>
</Grid>
</Window>
Nhưng, vấn đề là hiển thị cùng một giá trị cả của Window cho các tài sản BoundText có nghĩa là cả hai WPF Windows có cùng thể hiện của nút điều khiển từ tài nguyên, sử dụng trong cả Windows.
Làm thế nào tôi có thể giải quyết vấn đề này như vậy mà mỗi cửa sổ được một kiểm soát nút tách biệt với tài nguyên và vẫn hiển thị khác nhau giá trị cho các BoundText
tài sản từ họ riêng ViewModel?
Edit: Cũng vì lý do nêu tại MSDN
như dưới đây, tôi không thể sử dụng x: Shared = "False" thuộc tính để giải quyết này:
• Các ResourceDictionary có chứa các vật dụng này phải không được lồng vào nhau trong ResourceDictionary khác. Ví dụ: bạn không thể sử dụng x: Được chia sẻ cho các mục trong ResourceDictionary nằm trong một Kiểu mà đã là một mục ResourceDictionary.
Cảm ơn.Nhưng, tôi không thể sử dụng thuộc tính đó làm lý do được đề cập trong phần ** Chỉnh sửa: ** của câu hỏi. – VS1
Và bạn sử dụng ví dụ trên, bạn sẽ sử dụng thẻ sau. –
Loman
Tuyệt vời, x: Chia sẻ vừa giải quyết vấn đề của tôi cũng như với mục đích chia sẻ một điều khiển giữa các Chế độ xem khác nhau. – usefulBee