Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在DataGrid中选择一行_C#_Wpf_Datagrid_Wpfdatagrid - Fatal编程技术网

C# 在DataGrid中选择一行

C# 在DataGrid中选择一行,c#,wpf,datagrid,wpfdatagrid,C#,Wpf,Datagrid,Wpfdatagrid,我定义了一个包含三行的初始表。如果用户选择一行并单击“开始新表”按钮,它将打开一个带有新表的新选项卡项。 问题是我不知道如何在数据网格中选择整行 C# Code: //this my initial Table private ObservableCollection<TableDataRowStringItem> tableobject = new ObservableCollection<TableDataRowStringItem>(); List<Table

我定义了一个包含三行的初始表。如果用户选择一行并单击“开始新表”按钮,它将打开一个带有新表的新选项卡项。 问题是我不知道如何在数据网格中选择整行

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>
C#代码:
//这是我的第一张桌子
私有ObservableCollection tableobject=新ObservableCollection();
List rowstringList=新列表();
TableDataRowStringItem=新的TableDataRowStringItem();
item.RowNumber=1;item.saveFlag=true;item.ObjectType=“E”;item.Name=“E”;item.PredecessorRowNumber=“0”;
rowstringList.Add(项);
item=新的TableDataRowStringItem();
item.RowNumber=2;item.ObjectType=“函数”;item.Name=“函数”;item.PredecessorRowNumber=“1”;
rowstringList.Add(项);
item=新的TableDataRowStringItem();
item.RowNumber=3;item.ObjectType=“E”;item.Name=“E”;item.PredecessorRowNumber=“2”;
rowstringList.Add(项);
RowstringListPK=rowstringList;
对于(int i=0;i
这可能有助于:

<DataGrid SelectionMode="Single" SelectionUnit="FullRow" ...
您的测试将是:

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

您可以使用访问数据行

  dataGrid1.SelectedItem

thanx但是我怎么能用c写,比如说,如果我选择第2行并按下按钮,它将打开我的新选项卡项
  dataGrid1.SelectedItem