Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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
C# 数据模板仅在ItemsControl控件中是必需的?_C#_Wpf_Silverlight_Xaml_Datatemplate - Fatal编程技术网

C# 数据模板仅在ItemsControl控件中是必需的?

C# 数据模板仅在ItemsControl控件中是必需的?,c#,wpf,silverlight,xaml,datatemplate,C#,Wpf,Silverlight,Xaml,Datatemplate,让我向你解释我的情况 我有一个叫做Shape的基类,还有几个具体的类,比如三角形、正方形等 我有几个数据模板 我只建造了一个物体。所以我不会使用ItemControl控件,我想使用一个普通的面板,比如网格,并显示相应的数据模板(在DataContext中有具体的项) 唯一的方法是使用ItemsControl?或者还有另一种方法。。因为我只使用了一个项目,而不是集合,并显示了正确的模板。如果要使用基于项目类型选择的数据模板显示单个项目,您应该使用ContentControl或其任何派生类。如果要使

让我向你解释我的情况

我有一个叫做Shape的基类,还有几个具体的类,比如三角形、正方形等

我有几个数据模板

我只建造了一个物体。所以我不会使用ItemControl控件,我想使用一个普通的面板,比如网格,并显示相应的数据模板(在DataContext中有具体的项)


唯一的方法是使用ItemsControl?或者还有另一种方法。。因为我只使用了一个项目,而不是集合,并显示了正确的模板。

如果要使用基于项目类型选择的数据模板显示单个项目,您应该使用
ContentControl
或其任何派生类。

如果要使用基于项目类型选择的数据模板显示单个项目,您应该使用
ContentControl
或其任何派生类。

DataTemplates
不仅仅用于
ItemsControls

<DataTemplate DataType="{x:Type local:MyDataObject}">
    <!-- Tell WPF how to draw MyDataObject here -->
</DataTemplate>
它们用于告诉WPF如何在可视化树中绘制任何对象。例如,如果在
VisualTree
中粘贴
User
类对象,则可以使用
DataTemplate
告诉WPF如何绘制该
User
对象

它们最常用于具有
ItemsSource
Content
属性的控件中,因为它们是将数据对象插入
VisualTree
的最常用方法

在您只想在VisualTree中插入一个数据项的特定情况下,我建议使用
ContentControl

<ContentControl Content="{Binding MyDataObject}" />
或者定义一个隐式的
DataTemplate
,告诉WPF使用特定模板绘制特定类型的任何对象

<DataTemplate DataType="{x:Type local:MyDataObject}">
    <!-- Tell WPF how to draw MyDataObject here -->
</DataTemplate>

数据模板
不仅仅用于
项控件

它们用于告诉WPF如何在可视化树中绘制任何对象。例如,如果在
VisualTree
中粘贴
User
类对象,则可以使用
DataTemplate
告诉WPF如何绘制该
User
对象

它们最常用于具有
ItemsSource
Content
属性的控件中,因为它们是将数据对象插入
VisualTree
的最常用方法

在您只想在VisualTree中插入一个数据项的特定情况下,我建议使用
ContentControl

<ContentControl Content="{Binding MyDataObject}" />
或者定义一个隐式的
DataTemplate
,告诉WPF使用特定模板绘制特定类型的任何对象

<DataTemplate DataType="{x:Type local:MyDataObject}">
    <!-- Tell WPF how to draw MyDataObject here -->
</DataTemplate>