将ComboBox选中的项绑定到视图模型的属性

时间:2013-05-04 16:20:52

标签: mvvm combobox bind

您好我正在尝试将我的ComboBox选择项绑定到我的视图模型中的属性,其中setter将获取此值并执行其他逻辑。现在我的ComboBox正在正确地从一个observablecollection系统中拉出项目但是我无法将一个序列的selectedItem绑定到一个属性。所选项目未获取ComboBox的字符串值。 Eveything还可以将DataContext分配给后面代码中的视图。任何想法都是我的viewModel:

public class CablingRequests : ObservableCollection<CablingRequest>
{
    public ObservableCollection<CablingRequest> PendingRequests { get; set; }
    public ObservableCollection<CablingRequest> ProcessedRequests { get; set; }
    public ObservableCollection<CablingRequest> Systems { get; set; }
    public ObservableCollection<CablingRequest> SelectedSystemConfiguration { get; set; }

    private string _serial;
    public string Serial
    {
        get { return _serial; }
        set
        {
            if (_serial == value)
                return;
            _serial = value;
            GetSelectedSystemConfiguration(_serial);
        }
    }

我的组合框的xaml代码:

<ComboBox x:Name="ComboBoxSerial" ItemsSource="{Binding Path=Systems}"
 DisplayMemberPath="SerialNumber" SelectedValue="{Binding Path=Serial, Mode=TwoWay}"
 IsSynchronizedWithCurrentItem="True" MinWidth="150" />

1 个答案:

答案 0 :(得分:2)

您的组合框绑定到CablingRequest的集合,因此您应该将SelectedItem绑定到CablingRequest的实例,或者如果您只想要序列号,那么您应该将SelectedValuePath设置为CablingRequest类型的'SerialNumber'属性。

有关详细信息,请参阅Difference between SelectedItem, SelectedValue and SelectedValuePath