【问题标题】:How to retrieve data from datagrid combo box using wpf?如何使用 wpf 从 datagrid 组合框中检索数据?
【发布时间】:2015-09-11 09:49:56
【问题描述】:

// 嗨,实际上我是 wpf 的新手,在这里我遇到了一个问题。我无法使用组合框从数据网格中检索值或数据,当我尝试检索时,我收到错误“对象设置为实例”这是我的代码,请检查并感谢帮助

//XAML code :

<DataGridComboBoxColumn Header="packagetype2" TextBinding="{Binding Uom}"  x:Name="cmb_pktype" ></DataGridComboBoxColumn>


//c# code:


DataSet ds1 = uomc.fillcombo();

cmb_pktype.ItemsSource = ds1.Tables[0].DefaultView;
cmb_pktype.DisplayMemberPath = ds1.Tables[0].Columns["Name"].ToString();
cmb_pktype.SelectedValuePath = ds1.Tables[0].Columns["Id"].ToString();



//when i am retrieveing the data like as below 


string type = (dgv_uomconversionmapping.SelectedCells[1].Column.GetCellContent(dgv_uomconversionmapping.Items[i]) as TextBlock).Text;

    enter code here

//This retrieving process is working for data grid textblock column 
//as this way how can i read the datagrid combobox column

【问题讨论】:

  • 绑定组合框选择的值并从那里获取

标签: wpf wpf-controls wpfdatagrid


【解决方案1】:

您需要在 ComboBox xaml 中使用 myComboBox SelectedItem={Binding myComboBoxSelectedItem, UpdateSourceTrigger=PropertyChanged}

MyComboBoxSelectedItem 应该是您的 viewModel 中公开的公共属性,它会从 INotifyPropertyChanged 接口引发 PropertyChanged 事件。像这样的:

  private string _myComboBoxSelectedItem;
    public string myComboBoxSelectedItem
    {
        get { return _myComboBoxSelectedItem; }
        set
        {
            _myComboBoxSelectedItem = value;
            OnPropertyChanged("myComboBoxSelectedItem");
        }
    }

这样,当用户从 ComboBox 中进行选择时,该值将持久保存到属性中。

【讨论】:

    【解决方案2】:

    使用组合框并将您的 xaml 代码更改为此

    `<ComboBox Name="combobox1" ItemsSource="{Binding}"/>
    

    `

    【讨论】:

    • 只需将 DataGridComboBoxColumn 更改为组合框并尝试
    猜你喜欢
    • 2014-12-03
    • 2010-12-17
    • 2018-12-18
    • 2023-03-05
    • 1970-01-01
    • 2022-10-07
    • 2013-09-30
    • 1970-01-01
    • 2017-09-02
    相关资源
    最近更新 更多