2015-09-23 61 views
0

我想獲得小區內的用戶進行選擇,像這樣的值:如何獲得選擇的DataGrid單元格的內容時SelectionUnit =細胞

enter image description here

但是它的轉向了比我更有挑戰性認爲它會。

我已經挖圍繞這些內容:

DataGridCellInfo currentCell = MyDataGrid.CurrentCell; 
DataGridCellInfo selectedCell = MyDataGrid.SelectedCells[0]; 

// object selectedItems = MyDataGrid.SelectedItems[0]; throws index out of range error 

object selectedValue = MyDataGrid.SelectedValue; // null 
object selectedItem = MyDataGrid.SelectedItem; // null 

但我無法找到任何這些簡單的文字。有誰知道從哪裏獲得價值「MEH」?最好從DataGridCellInfo類型。

在此先感謝。

編輯:

我設法讓這對DataGridTextColumns工作,但我也有DataGridTemplateColumns並且需要它爲那些工作了。

public string GetSelectedCellValue() 
{ 
    DataGridCellInfo cellInfo = MyDataGrid.SelectedCells[0]; 
    if (cellInfo == null) return null; 

    DataGridBoundColumn column = cellInfo.Column as DataGridBoundColumn; 
    if (column == null) return null; 

    FrameworkElement element = new FrameworkElement() { DataContext = cellInfo.Item }; 
    BindingOperations.SetBinding(element, TagProperty, column.Binding); 

    return element.Tag.ToString(); 
} 

任何想法?

回答

0

我得到了這個工作,但我需要指定每列的SortMemberPath爲MyRowClass的屬性。

public string GetSelectedCellValue() 
{ 
    DataGridCellInfo cells = MyDataGrid.SelectedCells[0]; 

    YourRowClass item = cells.Item as YourRowClass; 

    // specify the sort member path of the column to that YourRowClass property 
    string columnName = cells.Column.SortMemberPath; 

    if (item == null || columnName == null) return null; 

    object result = item.GetType().GetProperty(columnName).GetValue(item, null); 

    if (result == null) return null; 

    return result.ToString(); 
} 
相關問題