相关疑难解决方法(0)

将WPF ComboBox绑定到自定义列表

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

组合框ItemsSource绑定到上列出一串RAS电话簿条目作为一个的CollectionView的视图模型类的属性.然后,我必然(在不同的时间)两个SelectedItem或SelectedValue到视图模型的另一个属性.我在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连接,因此价值DisplayMemberPath和SelectedValuePath都的名称属性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万
查看次数

WPF Combobox与List <string>绑定

我有两个属性,一个是字符串列表,另一个是字符串.

private List<String> _property;
public List<String> Property
get
{
return new List<string>(){"string1", "string2"};
}
set{_property = value
}

public String SimpleStringProperty{get;set;}
Run Code Online (Sandbox Code Playgroud)

我也有一个在XAML中定义的Combobox

<Combobox ItemsSource="{Binding Property , Mode="TwoWay"}" Text="Select Option" />    
Run Code Online (Sandbox Code Playgroud)

现在组合框正确显示两个选项:"string1"和"string2"

当用户选择一个或另一个时,我想设置SimpleStringProperty该值.然而,通过双向绑定从组合框中返回的"值"不是selectedItem,而是List<String>.我怎么能这样做?我对wpf很新,所以请原谅业余爱好者.

c# wpf

13
推荐指数
1
解决办法
4万
查看次数

绑定DataGridComboBoxColumn.ItemsSource的问题

我有3个表:Item - 这是DataContext - 它有一个导航列Group Group - 有一个导航列Category.

我希望在DataGrid中包含(类别和组)列,当我选择一个类别时,它应该只在组列中显示Category.Groups.

这是我正在处理的代码:

<tk:DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}">
    <tk:DataGrid.Columns>

        <!--Works-->
        <tk:DataGridComboBoxColumn                                        
            Header="Categroy" 
            DisplayMemberPath="Title"                    
            SelectedValuePath="CategoryId"
            SelectedValueBinding="{Binding Group.Category.CategoryId}"
            ItemsSource="{Binding Context.Categories, 
                Source={x:Static Application.Current}}"
        />


        <!--Look at these two things:-->

        <!--This does work-->
        <tk:DataGridTemplateColumn>
            <tk:DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ItemsControl
                        ItemsSource="{Binding Group.Category.Groups}">
                        <ItemsControl.ItemTemplate>
                            <DataTemplate DataType="{x:Type data:Group}">
                                <TextBlock Text="{Binding Title}"/>
                            </DataTemplate>
                        </ItemsControl.ItemTemplate>
                    </ItemsControl>
                </DataTemplate>
            </tk:DataGridTemplateColumn.CellTemplate>
        </tk:DataGridTemplateColumn>

        <!--But this does NOT work, even it's the same source-->
        <!--Notice I even tried a dummy converter and doesnt reach there-->
        <tk:DataGridComboBoxColumn 
            Header="Group" 
            DisplayMemberPath="Title"
            SelectedValuePath="GroupId"
            ItemsSource="{Binding Group.Category.Groups, …
Run Code Online (Sandbox Code Playgroud)

wpf binding wpftoolkit datagridcomboboxcolumn

10
推荐指数
2
解决办法
3万
查看次数