2013-10-11 75 views
0

我有tabControl.In TabItem我有datagrid。在SelectionChanged事件中,我需要在TabItem的datagrid中看到不同的文本。WPF datagrid添加文本

这个我补充一下:

System.Windows.Controls.DataGrid dataGrid = new System.Windows.Controls.DataGrid(); 
DataGridTextColumn textColumn = new DataGridTextColumn(); 
textColumn.Width = 200; 
textColumn.Header = "Account"; 
textColumn.Binding = new Binding("Account"); 
dataGrid.Columns.Add(textColumn); 

item.Content = dataGrid; 

tabControl1.Items.Add(item); 

我需要例如这样的:

tabControl1.Controls[0].Items.Add(new DataItem()); 
+1

问题是什么? –

+0

如何向dataGrid添加文本,但dataGrid可以是10-20。 – Zuhan

回答

1

您正在尝试使用WPF喜欢它是Windows窗体,但它是非常不同。您将了解到您需要在MSDN上的DataGrid Class页面中使用DataGrid

总之,你需要为你的数据收集创建一个公共属性,并将其绑定到DataGrid.ItemsSource财产如在这个例子改编自链接页面上MSDN:

<DataGrid ItemsSource="{Binding yourCollection}" AutoGenerateColumns="False" > 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="First Name" Binding="{Binding FirstName}"/> 
     <DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" /> 
     <DataGridHyperlinkColumn Header="Email" Binding="{Binding Email}" 
      ContentBinding="{Binding Email, Converter={StaticResource 
      EmailConverter}}" /> 
     <DataGridCheckBoxColumn Header="Member?" Binding="{Binding IsMember}" /> 
     <DataGridComboBoxColumn Header="Order Status" SelectedItemBinding="{Binding 
      Status}" ItemsSource="{Binding Source={StaticResource myEnum}}" /> 
    </DataGrid.Columns> 
</DataGrid> 

然后,您可以定义您需要的列,如本例所示。

+0

我动态地在TabItems上添加datagrid。我需要编程向datagrid添加文本。 – Zuhan

+0

简单的解决方案...不要这样做...要么正确地(在XAML中),要么只是使用WinForms来做到这一点。 – Sheridan