Ich habe ein Button-Steuerelement als Ressource in den Ressourcen Wörterbuch als unten:WPF-Steuerelemente als StaticResource im Ressourcenwörterbuch, die in mehreren WPF-Windows verwendet werden?
<!--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-->
ich jetzt diese über Tastensteuerung Zum Inhalt Eigenschaft Content steuert in 2 verschiedene Windows-XAML-Dateien gebunden verwenden, in denen jeweils Window
hat seine eigene DataContext
und daher sollte jedes Fenster die Content
der oben genannten Tastensteuerung basierend auf seinem ViewModel's
BoundText
Eigenschaftswert wie unten für jedes Fenster anzeigen.
<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>
Aber das Problem ist, dass sowohl Display des Fensters desselben Wert für den Boundtext Eigenschaft, die bedeutet, dass sowohl die WPF Windows-gleiche Instanz von Tasten-Steuerung von Ressourcen, sowohl in der Windows verwendet.
Wie kann ich dieses Problem so lösen, dass jedes Fenster eine separate Tasten-Steuerung von der Ressource erhält und zeige noch verschiedene Werte für die BoundText
Eigenschaft von ihrem eigenen Ansichtsmodell?
Edit: Für die, wie unten in MSDN
genannten Grund kann ich nicht x verwenden:
• Die Resource, die die Elemente enthält, muss nicht: Geteilt = "False" Attribut dieses Problem zu beheben verschachtelt sein in einem anderen ResourceDictionary. Beispielsweise können Sie nicht verwenden x: Für Elemente in einem ResourceDictionary freigegeben, das in einem Style ist, das bereits ein ResourceDictionary-Element ist.
Danke.Aber ich kann dieses Attribut nicht als Grund verwenden, der in meinem ** Edit: ** - Teil der Frage erwähnt wird. – VS1
Und Sie verwenden das obige Beispiel, das Sie das folgende Tag verwenden würden. –
Loman
Excellent, x: Shared hat gerade mein Problem gelöst, um ein Control unter verschiedenen Views zu teilen. – usefulBee