相关疑难解决方法(0)

将WPF ComboBox绑定到自定义列表

我有一个似乎没有更新SelectedItem/SelectedValue的ComboBox.

组合框ItemsSource绑定到上列出一串RAS电话簿条目作为一个的CollectionView的视图模型类的属性.然后,我必然(在不同的时间)两个SelectedItemSelectedValue到视图模型的另一个属性.我在save命令中添加了一个MessageBox来调试数据绑定设置的值,但是没有设置SelectedItem/ SelectedValuebinding.

ViewModel类看起来像这样:

public ConnectionViewModel
{
    private readonly CollectionView _phonebookEntries;
    private string _phonebookeEntry;

    public CollectionView PhonebookEntries
    {
        get { return _phonebookEntries; }
    }

    public string PhonebookEntry
    {
        get { return _phonebookEntry; }
        set
        {
            if (_phonebookEntry == value) return;
            _phonebookEntry = value;
            OnPropertyChanged("PhonebookEntry");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

_phonebookEntries集合正在构造函数中从业务对象初始化.ComboBox XAML看起来像这样:

<ComboBox ItemsSource="{Binding Path=PhonebookEntries}"
    DisplayMemberPath="Name"
    SelectedValuePath="Name"
    SelectedValue="{Binding Path=PhonebookEntry}" />
Run Code Online (Sandbox Code Playgroud)

我只在下拉列表中显示的实际字符串值感兴趣的对象,因为这不是任何其他属性是我需要跨到RAS通过时,我想使VPN连接,因此价值DisplayMemberPathSelectedValuePath都的名称属性ConnectionViewModel.ComboBox DataTemplate应用于ItemsControl一个Window,其DataContext已设置为ViewModel实例.

ComboBox正确显示项目列表,我可以在UI中选择一个没有问题.但是,当我从命令中显示消息框时,PhonebookEntry属性仍然具有初始值,而不是ComboBox中的选定值.其他TextBox实例正在更新并在MessageBox中显示.

使用数据绑定ComboBox我错过了什么?我做了很多搜索,似乎找不到任何我做错的事.


这是我所看到的行为,但是在我的特定情况下,它不能用于某种原因.

我有一个MainWindowViewModel,它有一个CollectionViewConnectionViewModel.在MainWindowView.xaml文件代码隐藏中,我将DataContext设置为MainWindowViewModel.MainWindowView.xaml ItemsControl …

c# data-binding wpf combobox mvvm

174
推荐指数
3
解决办法
54万
查看次数

标签 统计

c# ×1

combobox ×1

data-binding ×1

mvvm ×1

wpf ×1