【发布时间】:2014-03-10 14:25:41
【问题描述】:
我想创建公共属性来获取和设置我从数据网格获取的对象。 我的数据网格有 3 列带文本和 3 列带复选框。 当我选中其中一个复选框时,我会在列表中获得整行的值,如下所示:
var selectedItemsController = MyObsCollection.Where(n => n.Controller).ToList();
这是一个对象列表,其中包含所有 3 个字符串值(以及复选框的所有 3 个布尔值),它们位于名为 Controller 的列中的复选框所在的同一行中。
MyObsCollection 也是 ObservableCollection 的公共属性,它们的定义如下:
ObservableCollection<RowData> _obsCollection =
new ObservableCollection<RowData>();
public ObservableCollection<RowData> MyObsCollection
{
get { return _obsCollection; }
}
RowData 是我的类,它包含我需要的模型,它的定义如下:
public class RowData : INotifyPropertyChanged
{
public string Type { get; set; }
public string MapTo { get; set; }
public string Name { get; set; }
public bool Controller { get; set; }
public bool Service { get; set; }
public bool Injection { get; set; }
public RowData(string type, string mapTo, string name)
{
Type = type;
MapTo = mapTo;
Name = name;
}
我要做的是为该对象列表(在 selectedItemsController 中)创建一个公共属性,以便我可以在其他类中使用它。
例如,我正在使用名称为某些区域进行此操作,该区域也是 WindowsForm 的一部分。我是从某个文本框中取名字并制作这样的公共财产:
public string AreaName
{
get { return AreaNameValue.Text; }
set { AreaNameValue.Text = value; }
}
之后,我可以在其他班级做到这一点:
var areaName = areaDialog.AreaName.Trim();
所以最后我的问题是,如果 DataGrid 的名称是例如:tabela,是否有人知道如何为 DataRow 对象创建相同的公共属性? DataGrid 中是否已经定义了一些我可以使用的东西? (如“文本”属性用于 InputTextBoxes)。
【问题讨论】:
标签: c# wpf object properties datagrid