与 ItemsControl 一起使用时,Combobox Selected Items 未正确绑定

Combobox Selected Items not binding correctly when using it with ItemsControl

我需要将所选项目绑定到 属性,但不知何故它不起作用。

这是我的尝试:

            <ItemsControl ItemsSource="{Binding MyItems}">
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <Label Content="{Binding FirstProperty}"/>
                            <ComboBox ItemsSource="{Binding SecondProperties}" SelectedItem="{Binding SelectedProperty}" />
...

这是执行此操作的模型:

    private List<MyItems> _myItems;
    public List<MyItem> MyItems{
        get => _myItems;
        set
        {
            _myItems= value;
            OnPropertyChanged();
        }
    }

这是我的 class:

public class MyProperty
{
    public List<string> SecondProperties{ get; set; }
    public string FirstProperty;
    public string SelectedProperty;
}

我希望 SelectedProperty 与我选择的相匹配。当我以后使用它时,FirstProperty 可以,组合框列表 SecondProperties 也可以,但是 SelectedProperty 总是 null.

有什么帮助吗?

SelectedProperty 必须定义为 public 属性:

 public string SelectedProperty { get; set; }

这是一个 public 字段:

public string SelectedProperty;

我修复了你的代码:

public class MyProperty : INotifyPropertyChanged
{
    private string selectedProperty;
     public string SelectedProperty
    {
        get 
        { 
            return selectedProperty; 
        }
        set 
        { 
            selectedProperty = value;
            OnPropertyChanged("SelectedProperty");}
        } 

 protected virtual void OnPropertyChanged(string propertyName)
 {
     if (PropertyChanged != null)
     {
         PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
     }
 }

在您的 xaml

中添加 Mode=TwoWay
<ComboBox ItemsSource="{Binding SecondProperties}" SelectedItem="{Binding SelectedProperty,  Mode=TwoWay }" />