2010-08-11 93 views
0

我在.cs文件中有以下C#代碼,我想將它移動到XAML。 代碼包括屬性稱爲:OperationConverte從代碼隱藏到XAML

Binding binding1 = new Binding("DisplayNames") 
    { 
     Source = OperationConverter, 
    }; 
    ComboBox4.SetBinding(ComboBox.ItemsSourceProperty, binding1); 


    Binding binding2 = new Binding("Operation") 
         { 
         Mode = BindingMode.TwoWay, 
         Converter = (OperationConverter as IValueConverter) 
         }; 
    ComboBox4.SetBinding(ComboBox.SelectedValueProperty, binding2);  

所以我做了什麼是:

<ComboBox Name="ComboBox4" MinWidth="100" ItemsSource="{Binding Path=OperationConverter.DisplayNames}" 
           SelectedValue="{Binding Path=Operation, Mode=TwoWay, 
           Converter={?????DONT KNOW WHAT TO DO HERE????}}" Margin="30,123,83,148" /> 

,但我不知道如何連接OperationConverter

回答

2

有多種方式要做到這一點,但標準做法是將轉換器的實例聲明爲資源並引用它。

<Window.Resources> 
    <local:OperationConverter x:Key="MyConverter" /> 
</Window.Resources> 

和更新的綁定

SelectedValue="{Binding Path=Operation, Mode=TwoWay, Converter={StaticResource MyConverter}}" 

當前正在暴露的轉換器能更好地通過不必在所有實施的IValueConverter,取而代之的是OperationConverter對象暴露的轉換值,並直接綁定處理方式該財產。

+0

對不起但我不明白: 「從OperationConverter對象公開轉換的值並直接綁定到該屬性。」 – Erez 2010-08-11 06:39:34