数据绑定和检索值

时间:2015-10-19 14:54:08

标签: c# wpf datagrid

我目前正在将Company对象绑定到由OleDB查询填充的DataGrid。每家公司都有一个唯一的ID,但我不想在DataGrid中显示公司的ID。

我可以轻松检索DataGrid中显示的每个公司名称,执行一些简单的操作,例如获取所选行的第一个单元格的内容。

但是,由于未显示唯一ID,因此我无法检索关联的公司ID。基本上我想要实现的是:

MySqlCommand sqlCmd = new MySqlCommand("UPDATE companies SET name = @name, addr1 = @addr1 WHERE CompanyID = @companyID)", sqlCon);

在用户在DataGrid中选择公司并单击name按钮后,

addr1update派生自在XAML中绑定的文本框。文本框以;

为约束
<TextBox Text="{Binding SelectedItem.CompanyName, ElementName=dataGrid}" TextWrapping="Wrap" Margin="10" IsReadOnly="true"/>
<TextBox Text="{Binding SelectedItem.CompanyAddr1, ElementName=dataGrid}" Margin="10,0,10,10" Height="26" IsReadOnly="true"/>

我可以将ID绑定到TextBox并隐藏它,但我觉得有一种更好的方式。

1 个答案:

答案 0 :(得分:0)

  1. 创建一个类公司:

    public partial class Compay
    {
        public int CompanyID { get; set; }
        public string Name { get; set; }
        public string Addr1 { get; set; }
    }
    
  2. 查看模型

    public class CompanyVM : ViewModelBase
    {
    
          public CompanyVM()
          {
            CompaySource= getAllCompanies();
          }
    
    
    
         private ObservableCollection<Compay> _compaySource;
         public ObservableCollection<Compay> CompaySource
        {
            get
            {
                return _compaySource;
            }
            set
            {
                _compaySource= value;
                OnPropertyChanged("CompaySource");
            }
        }
    
    }