2012-08-15 4 views
0

Я определил начальную таблицу с тремя строками. Если пользователь выбирает строку и нажимает кнопку «Начать новую таблицу», она откроет новый tabItem с новой таблицей. Проблема в том, что я не знаю, как я могу выбрать целую строку в моем DataGrid.Выбор строки в DataGrid

C# Code: 
//this my initial Table 
private ObservableCollection<TableDataRowStringItem> tableobject = new ObservableCollection<TableDataRowStringItem>(); 
List<TableDataRowStringItem> rowstringList = new List<TableDataRowStringItem>(); 
TableDataRowStringItem item = new TableDataRowStringItem(); 
item.RowNumber = 1; item.saveFlag = true; item.ObjectType = "E"; item.Name = "E"; item.PredecessorRowNumber = "0"; 
rowstringList.Add(item); 
item = new TableDataRowStringItem(); 
item.RowNumber = 2; item.ObjectType = "Function"; item.Name = "Function"; item.PredecessorRowNumber = "1"; 
rowstringList.Add(item); 
item = new TableDataRowStringItem(); 
item.RowNumber = 3; item.ObjectType = "E"; item.Name = "E"; item.PredecessorRowNumber = "2"; 
rowstringList.Add(item); 
rowstringListEPK = rowstringList; 
for (int i = 0; i < rowstringList.Count; i++) 
{ 
    tableobject.Add(rowstringList[i]); 
} 
DataGrid1.ItemsSource = tableobject; 


//Button Code 
foreach (TableDataRowStringItem item in rowstringListEPK) 
{ 
    if (item.ObjectType == "Function" **(&& Hier i schould write if row.Isselected)**) 
    { 
     rowStringItem.Name = item.Name; 
     tabControl.Items.Add(tabItem); 
     tabItem.Focus(); 
     tabItem.IsSelected = true; 
     tabItem.Header = rowStringItem.Name; 
     TableTab.Visibility = Visibility.Visible 
    } 
    else do nothing 
} 

//XAML Code 
<DataGrid.RowStyle> 
    <Style TargetType="DataGridRow"> 
     <Style.Triggers> 
      <Trigger Property="IsSelected" Value="True"> 
       <Setter Property="BorderBrush" Value="Blue" /> 
       <Setter Property="BorderThickness" Value="1" /> 
       <Setter Property="AllowDrop" Value="True" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</DataGrid.RowStyle> 

ответ

0

ваш тест будет:

if (dataGrid1.SelectedItem != null) //test if a row is selected 

и после

Вы можете получить доступ к ряду данных с

dataGrid1.SelectedItem 
+0

Thanx, но как я могу написать в C#, что, как пример, если я выбрать row2 и нажмите на кнопку она откроет свой новый TabItem – User1979

+0

Thanx он работал – User1979

+0

привет, рад помочь вам –

1

Это может помочь:

<DataGrid SelectionMode="Single" SelectionUnit="FullRow" ... 

или

DataGrid dataGrid = new DataGrid(); 
dataGrid.SelectionUnit = DataGridSelectionUnit.FullRow; 
dataGrid.SelectionMode = DataGridSelectionMode.Single; 
Смежные вопросы