2010-06-30 76 views
0

如果所有樣式和轉換器都存儲在共享資源字典文件(styles.xaml)中,並且此文件在各個窗口中使用。wpf共享ResourceDictionary文件參數?

是否可以將參數傳遞給該文件,並將該參數傳播給轉換器?

我正在尋找一種方法來通過「原產地」類型參數,以便轉換器可以知道他們正在使用哪個地方?只是提示當前窗口/網格正在使用轉換器..

+0

不確定您在共享資源字典中的「轉換器」是什麼意思。當我在XAML和WPF的環境中看到這個術語時,我想到了IValueConverter。還有別的嗎? – 2010-06-30 22:45:00

+0

是的。 iValueConverters。轉換具有可選參數。我希望能夠通過resourcedictionary文件 – 2010-07-01 05:15:37

回答

0

我不知道這樣的事情會工作:

到系統命名空間添加引用在每個窗口的聲明或用戶控件,你想要這個。

 xmlns:sys="clr-namespace:System;assembly=mscorlib" 

然後在你的資源部分處理事情是這樣的:那麼

<Window.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="styles.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
      <sys:String x:Key="WinConvertParam">IDTextForThisWindow</sys:String> 
    </ResourceDictionary> 
</Window.Resources> 

你綁定語法可能是這個樣子:

{Binding SomeProperty, 
     Converter={StaticResource thatConverterIWrote}, 
     ConverterParameter={StaticResource WinConvertParam}} 

...和你的轉換或ConvertBack只要您在文件間改變<sys:String/>的值,轉換類中的方法就會意識到正在使用它們的窗口。

您認爲如何?