Wpf 如何将字符串变量绑定到绑定到DataSet的Datagrid行详细信息
我有绑定到数据库的DatagridWpf 如何将字符串变量绑定到绑定到DataSet的Datagrid行详细信息,wpf,xaml,data-binding,datagrid,Wpf,Xaml,Data Binding,Datagrid,我有绑定到数据库的Datagrid <WpfToolkit:DataGrid Name="DataGrid1" Grid.Row="1" ItemsSource="{Binding Path=MainSearchBinding}" /> 我有行详细信息,它绑定到数据库中我的表的Intro列 <WpfToolkit:DataGrid.RowDetailsTemplate> <DataTemplate>
<WpfToolkit:DataGrid Name="DataGrid1" Grid.Row="1"
ItemsSource="{Binding Path=MainSearchBinding}" />
我有行详细信息,它绑定到数据库中我的表的Intro列
<WpfToolkit:DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="5">
<StackPanel Orientation="Vertical" Margin="5" >
<TextBlock Foreground="CadetBlue" FontSize="13"
Width="Auto" TextWrapping="Wrap"
Text="{Binding Path=Intro}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</WpfToolkit:DataGrid.RowDetailsTemplate>
我想要的是不要在我的表中使用Intro列。我想使用代码中的字符串值,而不是列介绍。如何将字符串值绑定到行详细信息?提前感谢。我稍微修改了我的xaml代码,将名称添加到文本块中
<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>
我将下面的代码添加到OnMouseClick中。retString是我的字符串变量。它在每个单击的行详细信息中显示我的字符串变量
Microsoft.Windows.Controls.DataGridRow row = (Microsoft.Windows.Controls.DataGridRow)(DataGrid1.ItemContainerGenerator.ContainerFromItem(DataGrid1.SelectedItem));
// Getting the ContentPresenter of the row details
DataGridDetailsPresenter presenter = FindVisualChild<DataGridDetailsPresenter>(row);
DataTemplate template = presenter.ContentTemplate;
TextBlock txt = (TextBlock)template.FindName("rowdetails", presenter);
txt.Text = retString;
不要忘记在代码中添加FindVisualChild。这是代码
private childItem FindVisualChild<childItem>(DependencyObject obj)
where childItem : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is childItem)
return (childItem)child;
else
{
childItem childOfChild = FindVisualChild<childItem>(child);
if (childOfChild != null)
return childOfChild;
}
}
return null;
}
我不知道为什么没有人回答我的问题。也许它不受欢迎