属性和对象C#

时间:2014-02-12 10:17:59

标签: c# wpf object properties datagrid

我想制作公共属性,获取并设置我从datagrid获得的对象。 我有datagrid有3列文本和3列复选框。 当我选中其中一个复选框时,我会在列表中获得整行的值,如下所示:

var selectedItemsController = MyObsCollection.Where(n => n.Controller).ToList();

这是一个对象列表,其中包含所有3个字符串值(以及所有3个复选框的bool值),它们位于同一行,其中名为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中已定义的内容吗? (比如'Text'属性用于InputTextBoxes。)

1 个答案:

答案 0 :(得分:0)

您可以将selectedItemsController设置为DataGrid的datacontext。然后,您可以在selectedItemsController本身上设置和获取值。