我目前正在将Company对象绑定到由OleDB查询填充的DataGrid。每家公司都有一个唯一的ID,但我不想在DataGrid中显示公司的ID。
我可以轻松检索DataGrid中显示的每个公司名称,执行一些简单的操作,例如获取所选行的第一个单元格的内容。
但是,由于未显示唯一ID,因此我无法检索关联的公司ID。基本上我想要实现的是:
MySqlCommand sqlCmd = new MySqlCommand("UPDATE companies SET name = @name, addr1 = @addr1 WHERE CompanyID = @companyID)", sqlCon);
name
按钮后, addr1
和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并隐藏它,但我觉得有一种更好的方式。
答案 0 :(得分:0)
创建一个类公司:
public partial class Compay
{
public int CompanyID { get; set; }
public string Name { get; set; }
public string Addr1 { get; set; }
}
查看模型
public class CompanyVM : ViewModelBase
{
public CompanyVM()
{
CompaySource= getAllCompanies();
}
private ObservableCollection<Compay> _compaySource;
public ObservableCollection<Compay> CompaySource
{
get
{
return _compaySource;
}
set
{
_compaySource= value;
OnPropertyChanged("CompaySource");
}
}
}