Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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
Wpf 如何为每个DataGrid行详细信息更改行详细信息的DataTemplate中的TextBlock文本?_Wpf_Wpfdatagrid_Wpftoolkit - Fatal编程技术网

Wpf 如何为每个DataGrid行详细信息更改行详细信息的DataTemplate中的TextBlock文本?

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 =

我有Datagrid,它在每一行中通过鼠标单击显示数据网格行的详细信息。这是代码

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”
?仍然存在相同的错误。没有区别。