2014-02-12 114 views
0

我想讓公共屬性獲取並設置從datagrid獲得的對象。 我有datagrid有3列與文本和3列與複選框。 當我選中該複選框,我得到全行的值列表像這樣的一個:屬性和對象C#

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的一部分的Area命名。我從一些文本框取的名字,使公共財產是這樣的:

public string AreaName 
     { 
      get { return AreaNameValue.Text; } 
      set { AreaNameValue.Text = value; } 
     } 

而在這之後,我能夠做到這一點在其他類:

var areaName = areaDialog.AreaName.Trim(); 

所以最後我的問題是,是否有人知道如何爲DataRow對象創建相同的公共屬性,如果DataGrid的名稱是例如:tabela? DataGrid中是否有一些我可以使用的定義? (比如'Text'屬性用於InputTextBoxes)。

回答

0

您可以將您的selectedItemsController設置爲DataGrid的datacontext。然後你可以在selectedItemsController本身上設置和獲取值。