DataGridComboBoxColumn不更新模型WPF [英] DataGridComboBoxColumn not updating model WPF

查看:248
本文介绍了DataGridComboBoxColumn不更新模型WPF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在WPF和DataGridComboBoxColumn中使用Datagrid。请找到以下代码:

 < DataGrid> ... 

< DataGridComboBoxColumn标题= CategoryWidth =200
SelectedValueBinding ={Binding SelectedCategory,UpdateSourceTrigger = PropertyChanged}
DisplayMemberPath =CategoryName
SelectedValuePath =CategoryID>
< DataGridComboBoxColumn.ElementStyle>
< Style TargetType =ComboBox>
< Setter Property =ItemsSourceValue ={Binding CategoriesList}>< / Setter>
< / Style>
< /DataGridComboBoxColumn.ElementStyle>
< DataGridComboBoxColumn.EditingElementStyle>
< Style TargetType =ComboBox>
< Setter Property =ItemsSourceValue ={Binding CategoriesList}>< / Setter>
< / Style>
< /DataGridComboBoxColumn.EditingElementStyle>
< / DataGridComboBoxColumn>



模型如下:

  public CategoryModel SelectedCategory {get;组; } 
public ObservableCollection< CategoryModel> CategoriesList
{
get;
设置;
}

现在,当我更改组合框中的选择时,它显示一个红色边框,无法

解决方案

这是错误的:

 < DataGridComboBoxColumn Header =CategoryWidth =200
SelectedValueBinding ={Binding SelectedCategory,UpdateSourceTrigger = PropertyChanged}
DisplayMemberPath =CategoryName> ;

删除SelectedValuePath,或者获得一个类型匹配。我怀疑你需要UpdateSourceTrigger ...尝试ommit。


I'm using Datagrid in WPF and DataGridComboBoxColumn. Please find the code below:

<DataGrid>...                 

    <DataGridComboBoxColumn Header="Category" Width="200"                                        
                                    SelectedValueBinding="{Binding SelectedCategory, UpdateSourceTrigger=PropertyChanged}"
                                    DisplayMemberPath="CategoryName"
                                    SelectedValuePath="CategoryID">
        <DataGridComboBoxColumn.ElementStyle>
            <Style TargetType="ComboBox">
                <Setter Property="ItemsSource" Value="{Binding CategoriesList}"></Setter>
            </Style>
        </DataGridComboBoxColumn.ElementStyle>
        <DataGridComboBoxColumn.EditingElementStyle>
            <Style TargetType="ComboBox">
                <Setter Property="ItemsSource" Value="{Binding CategoriesList}"></Setter>
            </Style>                        
        </DataGridComboBoxColumn.EditingElementStyle>
   </DataGridComboBoxColumn>

The model is as follows:

public CategoryModel SelectedCategory { get; set; }
public ObservableCollection<CategoryModel> CategoriesList
{
    get;
    set;
}

Now when ever I change the selection in combobox it shows a red border, unable to commit the changes to the source.

解决方案

This is wrong:

<DataGridComboBoxColumn Header="Category" Width="200"                                        
                                SelectedValueBinding="{Binding SelectedCategory, UpdateSourceTrigger=PropertyChanged}"
                                DisplayMemberPath="CategoryName">

remove the SelectedValuePath or you get a type missmatch. I doubt you need the UpdateSourceTrigger either... Try to ommit.

这篇关于DataGridComboBoxColumn不更新模型WPF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆