我有一個按鈕控制,在資源字典中的資源如下:綁定到ContentControl中的內容屬性WPF控件在資源字典中用作多個WPF Windows中的StaticResource?
<!--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-->
我現在用這個按鈕上方控制控制在2不同的Windows的.xaml文件,其中每個Window
有自己的DataContext
,因此每個窗口應該顯示Content
上面的按鈕控制基於它的ViewModel's
BoundText
BoundText
屬性值如下爲每個窗口。
<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>
但是,問題是,這兩個窗口的顯示屏BoundText屬性相同的值,這意味着,無論是WPF Windows系統有從資源按鈕控件的相同情況下,無論在Windows中使用。
我該如何解決這個問題,使得每個窗口從資源獲得一個單獨按鈕控制,仍然從他們自己的視圖模型顯示爲BoundText
性質不同值?
編輯: 對於MSDN
下文提到的原因,我不能用x:共享=「false」屬性來解決此問題:
•包含項目的ResourceDictionary中不得在另一個ResourceDictionary中嵌套 。例如,不能使用 x:ResourceDictionary中項目的共享位於 已經是ResourceDictionary項目的樣式中。
謝謝。但是,我不能將該屬性用作我的**編輯:**部分中提到的原因。 – VS1 2013-02-13 10:06:47
而你使用上面的例子,你會使用下面的標籤。 –
Loman
2013-07-29 23:24:22
非常好,x:Shared也解決了我的問題,以便在不同視圖中共享一個控件。 – usefulBee 2014-04-22 15:34:56