绑定和检索值
本文关键字:检索 绑定 | 更新日期: 2023-09-27 18:18:17
我目前正在将Company对象绑定到由OleDB查询填充的DataGrid。每个公司都有一个唯一的ID,但是我不想在DataGrid中显示公司的ID。
我可以很容易地检索DataGrid中显示的每个Company的Name,只需做一些简单的事情,例如获取所选行的第一个单元格的内容。
但是,由于没有显示唯一的ID,我无法检索相关的Company的ID。从本质上讲,我想实现的是;
MySqlCommand sqlCmd = new MySqlCommand("UPDATE companies SET name = @name, addr1 = @addr1 WHERE CompanyID = @companyID)", sqlCon);
name
和addr1
来源于用户在DataGrid中选择公司并单击update
按钮后在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并隐藏它,但是我觉得有一个更好的方法
-
创建一个类公司:
public partial class Compay { public int CompanyID { get; set; } public string Name { get; set; } public string Addr1 { get; set; } }
-
View Model
public class CompanyVM : ViewModelBase { public CompanyVM() { CompaySource= getAllCompanies(); } private ObservableCollection<Compay> _compaySource; public ObservableCollection<Compay> CompaySource { get { return _compaySource; } set { _compaySource= value; OnPropertyChanged("CompaySource"); } } }