绑定到具有指定内容的组合框

本文关键字:组合 绑定 | 更新日期: 2023-09-27 17:53:31

我想知道如何在指定内容时绑定到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(); } }

我的绑定设置不正确吗?

绑定到具有指定内容的组合框

First:在您的xaml中使用此命名空间xmlns:sys="clr-namespace:System;assembly=mscorlib"

Second:将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>

Third:您是如何实现INotifyPropertyChanged的?似乎您没有将属性名称作为字符串发送给Notify机制。应该是这样的(而不是NotifyOfPropertyChange())

PropertyChanged(this, new PropertyChangedEventArgs("Duration"));

尝试指定绑定模式,mode = two - way

更多信息请访问https://msdn.microsoft.com/en-us/library/system.windows.data.binding.mode (v = vs.110) . aspx

希望能有所帮助