2017-04-07 17 views
-1

我有一個MultiBinding定義如下:使用的資源綁定沒有風格

<MultiBinding StringFormat="{0}_{1}"> 
    <Binding Path="..." /> 
    <Binding Path="..." /> 
</MultiBinding> 

我需要在多個地方使用它,並希望在我的資源來定義它,如:

<MultiBinding x:Name="MyDefaultBinding" StringFormat="..."> 
    <!-- etc --> 
</MultiBinding> 

但是,我現在無法弄清楚如何使用它。我嘗試了StaticResource,如:

<TextBlock Text="{StaticResource MyDefaultBinding}" 
      Style="{StaticResource SomeOtherStyle}" /> 

這給了我一個編譯錯誤:「無效的資源類型:預測的類型是‘字符串’,實際類型是‘MultiBinding’。」

當我試圖用來訪問它Binding像:

<TextBlock Text="{Binding Source={StaticResource MyDefaultBinding}}" 
      Style="{StaticResource SomeOtherStyle}" /> 

它編譯,但在運行時在TextBlock文本設置爲「System.Windows.Data.MultiBinding」代替期望值。

我見過建議,建議在Style中包裝MultiBinding,但是我已經在控件上定義了其他共享樣式,我需要使用該綁定。

我可以評估資源中定義的綁定而不將其包裝在樣式中嗎?

+0

我不認爲這是可能的。不過,我認爲你可以用你的新風格使用'BaseOn'擴展現有的樣式。這樣,你有一種風格與綁定和一個沒有,但仍然有風格只編碼一次。 – wkl

回答

0

你真的不能再使用綁定資源原樣,但你可以創建如下建議,應用資源標記擴展:

Binding as a Resource