从与ObservableDictionary

时间:2018-01-24 17:27:47

标签: c# wpf combobox observablecollection model-binding

这令人尴尬。

我正在尝试将ObservableDictionary绑定到ComboBox。

我已经做好了,但是我进一步将所选值绑定到属性,但是我没有得到该字段的正确值。

这是我的模特

public class Category
{
    public Int64 CategoryId { get; set; }
    public string CategoryRef { get; set; }
    public string Description { get; set; }
}

这是我的ViewModel:

public Dictionary<string, Category> _categoryFields;

public Dictionary<string, Category> CategoryFields
{
    get => _categoryFields;
    set
    {
        _categoryFields = value;
        RaisePropertyChanged("CategoryFields");
    }
}

private string _categorySelected;

public string CategorySelected
{
    get => _categorySelected;
    set
    {
        _categorySelected= value;
        RaisePropertyChanged("CategorySelected");
        EvJobCategoryHasChanged?.Invoke();
    }
}

这是我的观点:

<ComboBoxAdv 
    DisplayMemberPath="Value.Description"                                         
    SelectedValue="{Binding CategorySelected,Mode=TwoWay}"                                         
    SelectedValuePath="{Binding Value.Description}"                                        
    ItemsSource="{Binding CategoryFields}" />

我正在尝试获取用户选择的描述。

1 个答案:

答案 0 :(得分:1)

这可能是你的问题:

SelectedValuePath="{Binding Value.Description}"

此属性不需要绑定;它应该是属性路径,就像DisplayMemberPath一样。将其更改为:

SelectedValuePath="Value.Description"