2013-05-05 6 views
0

У меня есть textBox, и я использую преобразователь значений, чтобы установить свойство text, потому что это значение зависит от selección от datagrid. Поэтому я использую этот код:Как обновить свойство модели представления, когда я использую преобразователь значений?

<TextBox Height="23" HorizontalAlignment="Stretch" Margin="5,26,0,0" Name="myTxt" VerticalAlignment="Top" 
       Text="{Binding ElementName=Principal, Path=DataContext.OneProperty, Converter={StaticResource myConverter}}"> 

Normallt Я использую этот путь:

Text="{Binding myProperty}" 

Но в данном случае мне нужен конвертер, но я хотел бы, чтобы обновить свойство в DataContext.

Возможно ли это, или если я использую конвертер, я не могу обновить свойство в dataContext?

Спасибо.

EDIT:

Я стараюсь быть немного clerer.

У меня есть представление, которое имеет TextBox. Я хочу установить этот текстовый блок в соответствии с конвертером. Этот конвертер использует свойство в модели представления, называемой myDataGridSelectedItems. Но у меня есть другое свойство в модели представления myTextBox, которую я хочу обновить, когда textBox обновит ее значение со значением, которое оно получает от конвертера.

Поэтому я хочу привязать свойство Text вида к двум свойствам в модели представления.

+2

Если это silverlight, вам необходимо указать Mode = TwoWay на вашем переплёте и убедиться, что ваш конвертер реализует ConvertBack, и он должен работать нормально – Charleh

ответ

5

Да, вы можете. Внесите метод ConvertBack в конвертер значений, который, кстати, должен реализовать IValueConverter.

Также укажите свойство привязки NotifyPropertyChanged к методу нажатия клавиши.

И, наконец, установите режим привязки к TwoWay.

+0

, но как я могу сказать, что я хочу привязать свойство myProperty в модели представления, когда Я использую привязку для выполнения конвертера? Я имею в виду, что текст proerty в представлении привязывается к значению конвертирования, но я хочу привязать свойство в модели представления тоже. –

+1

Как я уже сказал, '' {Binding Mode = TwoWay} "будет делать трюк. – AgentFire

+1

@ ÁlvaroGarcía вы думаете, что вы связываете 'myConverter <=> TextBlock', но на самом деле вы связываете' myProperty <= myConverter => TextBlock' – WiiMaxx

Смежные вопросы