【问题标题】:Properties and objects C#属性和对象 C#
【发布时间】: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


    【解决方案1】:

    您可以将 selectedItemsController 设置为 DataGrid 的数据上下文。然后你可以设置和获取 selectedItemsController 本身的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多