1
我想簡化WPF中的綁定。假設我在App.xaml中創建了一個FontFamily
資源,該資源綁定到應用程序設置中的字符串值,以避免在每個窗口中出現一長串綁定表達式。但是我發現我找不到這樣做的方法。將靜態資源綁定到WPF中的現有值
據說XAML 2009中有一個x:Arguments
,但這不適用於此。
我的方法:
<DynamicResource x:Key="PrimaryFont" ResourceKey="{Binding PrimaryFont, Source={x:Static properties:Settings.Default}, Converter={StaticResource StringToFontFamilyConverter}}"/>
失敗,拋出一個XamlParseException
。
<FontFamily x:Key="PrimaryFont">
<Binding Path="PrimaryFont" Source="{x:Static properties:Settings.Default}" Converter="{StaticResource StringToFontFamilyConverter}"/>
</FontFamily>
這甚至不能編譯。
我不想在代碼背後添加,因爲我不想讓所有的東西看起來像一團糟。那可能嗎?
編輯:這不是Setting global font family的副本。 FontFamily
只是爲了解釋的目的,在現實世界中會有多種元素我想要簡化綁定,而元素可能不是新風格的好目標。
我不明白這是如何重複的? – KyloRen
不需要轉換器,因此Binding部分相對較小:''FontFamily = {{Binding MyFont,Source = {x:Static p:Settings.Default}}「'',假設有''' ''Settings.Default''中名爲'MyFont'的字符串''。另外,我使用''p''而不是''''來使它更小。 – Ron
@Ron謝謝。我現在將在可應用的設置上使用它。 –