C# WPF是否允许强制转换数据网格以键入visual?
我在WPF中有一个数据网格,如下所示。我需要在代码隐藏中将其作为Visual类类型的对象传递。这在WPF中可能吗?是的,你可以 Xaml:C# WPF是否允许强制转换数据网格以键入visual?,c#,.net,wpf,xaml,grid,C#,.net,Wpf,Xaml,Grid,我在WPF中有一个数据网格,如下所示。我需要在代码隐藏中将其作为Visual类类型的对象传递。这在WPF中可能吗?是的,你可以 Xaml: <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<DataGrid x:Name="MyGrid" ItemsSource="{Binding Items}" AutoGenerateColumns="False" Grid.Row="1">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Image" Width="SizeToCells" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding Image}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<Grid.Background>
<VisualBrush Visual="{Binding Visual}"/>
</Grid.Background>
</Grid>
</Window>
下面是您可以在后端代码中执行的操作。Simplay将控件指定给Visual
public class VM
{
public Visual Visual { get; set; }
}
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new VM {Visual = MyGrid};
}
}
公共类虚拟机
{
公共视觉{get;set;}
}
///
///MainWindow.xaml的交互逻辑
///
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
DataContext=newvm{Visual=MyGrid};
}
}
也可以使用
<VisualBrush Visual="{Binding ElementName=MyGrid}"/>
A
DataGrid
是一个可视的
,因此您只需要在XAML标记中为元素分配一个x:Name
:
<DataGrid x:Name="dg" ItemsSource="{Binding Items}" AutoGenerateColumns="False" >
...
有没有关于这方面的文档我可以阅读更多
Visual v = dg;