2010-08-11 166 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