2012-04-17 59 views
1

我有一個自定義轉換器,我想在xaml中使用。如果值等於0,轉換器只是放置Admin,如果它等於2等,則收銀員。綁定到自我控制字符串

反正這就是我要找的。

<ComboBoxItem Content="{Binding 'I want to place the value in here', Converter={StaticResource MyConverter}}"></ComboBoxItem>  

所以,如果我把:

<ComboBoxItem Content="{Binding '0', Converter={StaticResource MyConverter}}"></ComboBoxItem> 

我希望它傳遞的值爲0到我的轉換器。我怎樣才能做到這一點?


我知道我可以欺騙和做一些事情,如:

<Label Name="L1" Visiblity="hidden">0</Label> 
<ComboBoxItem Content="{Binding, ElementName='L1', Path='Content' Converter={StaticResource MyConverter}}"></ComboBoxItem> 

但就是冗餘

+0

我不明白你的問題,你確實做了你所看到的除了實際放置綁定(即設置路徑=等)。你不熟悉如何做一般的綁定? – CodingGorilla 2012-04-17 18:13:08

+0

我有一個轉換器,依賴於邏輯,如日期和文化,因此我想在我的代碼中使用它。我想通過綁定到列表視圖和標籤來使用它。 – 2012-04-17 18:18:45

回答

2

好吧,既然你的實現似乎是一個黑客,無論如何,你可以只使用另一hack:

<ComboBoxItem Tag="0" 
       Content="{Binding RelativeSource={RelativeSource Self}, 
           Path=Tag, 
           Converter={StaticResource MyConverter}}"> 
0

我知道你已經接受了我的第一個答案,但這裏有另一種方法,它是可能更有效。

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

    <Control.Resources> 
     <sys:Int32 x:Key="Zero">0</sys:Int32 > 
    </Control.Resources> 

    <ComboBoxItem Content="{Binding Source={StaticResource Zero}, 
            Converter={StaticResource MyConverter}}"> 

</Control>