От кода к XAML - PullRequest
       32

От кода к XAML

0 голосов
/ 11 августа 2010

У меня есть следующий код C # в файле .cs, и я хочу переместить его в XAML.код включает в себя свойство: OperationConverte

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

1 Ответ

2 голосов
/ 11 августа 2010

Есть несколько способов сделать это, но стандартная практика - объявить экземпляр конвертера как Ресурс и сослаться на него.

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

и обновленная привязка

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

Способ, которым вы в настоящее время предоставляете конвертер, будет лучше обработан, если вообще не реализовывать IValueConverter, а вместо этого выставлять преобразованное значение из объекта OperationConverter и привязывать непосредственно к этому свойству.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...