Wpf 如何为每个DataGrid行详细信息更改行详细信息的DataTemplate中的TextBlock文本?
我有Datagrid,它在每一行中通过鼠标单击显示数据网格行的详细信息。这是代码Wpf 如何为每个DataGrid行详细信息更改行详细信息的DataTemplate中的TextBlock文本?,wpf,wpfdatagrid,wpftoolkit,Wpf,Wpfdatagrid,Wpftoolkit,我有Datagrid,它在每一行中通过鼠标单击显示数据网格行的详细信息。这是代码 Microsoft.Windows.Controls.DataGridRow row = (Microsoft.Windows.Controls.DataGridRow)(DataGrid1.ItemContainerGenerator.ContainerFromItem(DataGrid1.SelectedItem)); DataGridDetailsPresenter presenter =
Microsoft.Windows.Controls.DataGridRow row = (Microsoft.Windows.Controls.DataGridRow)(DataGrid1.ItemContainerGenerator.ContainerFromItem(DataGrid1.SelectedItem));
DataGridDetailsPresenter presenter = FindVisualChild<DataGridDetailsPresenter>(row);
DataTemplate template = presenter.ContentTemplate;
TextBlock txt = (TextBlock)template.FindName("rowdetails", presenter);
txt.Text = retString;
Microsoft.Windows.Controls.DataGridRow=(Microsoft.Windows.Controls.DataGridRow)(DataGrid1.ItemContainerGenerator.ContainerFromItem(DataGrid1.SelectedItem));
DataGridDetailsPresenter=FindVisualChild(行);
DataTemplate=presenter.ContentTemplate;
TextBlock txt=(TextBlock)template.FindName(“行详细信息”,演示者);
txt.Text=retString;
我还有一个复选框,当你选中它时,它应该显示所有行的详细信息。
我正在尝试此代码以显示所有行详细信息
if ((bool)chkboxRowDetails.IsChecked)
{
DataGrid1.RowDetailsVisibilityMode = Microsoft.Windows.Controls.DataGridRowDetailsVisibilityMode.Visible;
for (int i = 0; i < DataGrid1.Items.Count-1; i++)
{
Microsoft.Windows.Controls.DataGridRow row = (Microsoft.Windows.Controls.DataGridRow)(DataGrid1.ItemContainerGenerator.ContainerFromIndex(i));
DataGridDetailsPresenter presenter = FindVisualChild<DataGridDetailsPresenter>(row);
DataTemplate template =presenter.ContentTemplate;
TextBlock txt = (TextBlock)template.FindName("rowdetails", presenter);
txt.Text = retString;
}
if((bool)chkboxRowDetails.IsChecked)
{
DataGrid1.RowDetailsVisibilityMode=Microsoft.Windows.Controls.DataGridRowDetailsVisibilityMode.Visible;
对于(int i=0;i
“此操作仅在应用了此模板的元素上有效。”
在行中显示TextBlock txt=(TextBlock)template.FindName(“行详细信息”,演示者);
你知道我的代码有什么问题吗?我想通过选中复选框来显示所有行的详细信息。我的数据模板在这里
<WpfToolkit:DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel HorizontalAlignment="Stretch" Orientation="Vertical" Margin="5">
<TextBlock Foreground="CadetBlue" FontSize="14"
TextWrapping="Wrap" Name="rowdetails" HorizontalAlignment="Stretch"
/>
</StackPanel>
</DataTemplate>
</WpfToolkit:DataGrid.RowDetailsTemplate>
我通过在行详细信息加载中添加一些代码解决了这个问题。下面是代码
TextBlock txt1 = e.DetailsElement.FindName("rowdetails") as TextBlock;
txt1.Text = retString; // where retString is variable string.
使用时会发生什么情况:
x:Name=“rowdetails”
?仍然存在相同的错误。没有区别。