我想知道在指定内容时如何绑定ComboBox
项。我可以将内容保存到数据库中,但当我尝试重新输入记录时,ComboBox
根本不会更改SelectedItem
。
<ComboBox SelectedItem="{Binding Duration, UpdateSourceTrigger=PropertyChanged}" SelectedIndex="0" Style="{StaticResource CombBox}" MinWidth="60">
<ComboBoxItem Content="15 Minutes"/>
<ComboBoxItem Content="30 Minutes"/>
<ComboBoxItem Content="45 Minutes"/>
<ComboBoxItem Content="1 Hour"/>
</ComboBox>
public string Duration { get { return Entity.Duration; } set { Entity.Duration = value; NotifyOfPropertyChange(); } }
我没有正确设置绑定吗?
答案 0 :(得分:1)
尝试指定绑定模式,Mode = TwoWay
欲了解更多信息,请访问 https://msdn.microsoft.com/en-us/library/system.windows.data.binding.mode(v=vs.110).aspx
希望这有帮助
答案 1 :(得分:1)
首先:在您的xaml中使用此命名空间xmlns:sys="clr-namespace:System;assembly=mscorlib"
第二:将您的ComboBox更改为:
<ComboBox SelectedItem="{Binding Duration, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<sys:String>15 Minutes</sys:String>
<sys:String>30 Minutes</sys:String>
<sys:String>45 Minutes</sys:String>
</ComboBox>
第三:您是如何实施INotifyPropertyChanged
的?您似乎没有将属性名称作为字符串发送到Notify机制。它应该是这样的(NotifyOfPropertyChange()
)
PropertyChanged(this, new PropertyChangedEventArgs("Duration"));