我想要的只是当用户更改文本框<DockPanel DataContext="{Binding MainWindow}">
<TextBox Text="{Binding
Path=AlphaMin,
NotifyOnTargetUpdated=True,
Mode=OneWayToSource,
UpdateSourceTrigger=PropertyChanged}" />
</DockPanel>
中的值时,属性<select class="yourStyle">
<option>option_1</option>
<option>option_2</option>
</select>
会更新。
代码背后:
:
XAML:
.
这应该是重复一百次,但是我已经完成了所有这些,并且对于源的这种单向更新,没有一个简单明了。所有MSN教程都将一些UIControl绑定到另一个,这是没有意义的,因为IntelliSense会告诉你如何做到这一点。
答案 0 :(得分:3)
您的DockPanel
可能存在错误DataContext
绑定。应该在窗口级别设置DataContext。
<Window ... DataContext="{Binding RelativeSource={RelativeSource Self}}" ..>
当然,假设你的XAML是MainWindow.xaml。
如果MainWindow的其余部分有不同的DataContext,那么你可以这样做:
<TextBox Text="{Binding
RelativeSource={RelativeSource AncestorType=Window},
Path=AlphaMin,
NotifyOnTargetUpdated=True,
Mode=OneWayToSource,
UpdateSourceTrigger=PropertyChanged}" />
当然,您应该删除DockPanel的DataContext。
你的代码背后是正确的;没有必要改变。使用CallerMemberName
是实施INotifyPropertyChanged
的好方法。
答案 1 :(得分:1)
为<Window x:Name="MyWin"...>
指定名称,然后将DataContext
绑定更改为{Binding ElementName=MyWin}
。
将此NotifyPropertyChanged();
更改为NotifyPropertyChanged("AlphaMin");