ItemsControl 仅显示 namespace.class,不呈现 DataTemplate
ItemsControl only shows namespace.class, doesn't render DataTemplate
我有以下问题:
在 ItemsControl
中,我为不同的 class 定义了一些 DataTemplates
。无缘无故(或者我可能没有意识到),只会呈现 class 名称,而不是模板。当我只使用一个带有 ItemTemplate
而不是 DataTemplate
的模板时,它会起作用。 "Element" classes 是内部的,更改为 public 不会这样做:
<ItemsControl ItemsSource="{Binding FilterElements}" >
<ItemsControl.Resources>
<DataTemplate DataType="local:DateFilter">
<StackPanel Orientation="Horizontal" MaxHeight="35">
<Label Content="From " VerticalAlignment="Center" />
<DatePicker SelectedDate="{Binding StartDate}" MaxWidth="120" BorderThickness="0"
VerticalAlignment="Center" />
<Label Content=" to " VerticalAlignment="Center" />
<DatePicker SelectedDate="{Binding EndDate}" MaxWidth="120" BorderThickness="0"
VerticalAlignment="Center" />
<local:IconButton Icon="Resources/x-8x.png" Margin="0" />
</StackPanel>
</DataTemplate>
<DataTemplate DataType="local:TimeFilter">
<StackPanel Orientation="Horizontal" MaxHeight="35">
<Label Content="Timespan: " VerticalAlignment="Center" />
<xctk:TimePicker StartTime="{Binding StartTime}" EndTime="{Binding EndTime}"
MaxWidth="120" BorderThickness="0"
VerticalAlignment="Center" />
<local:IconButton Icon="Resources/x-8x.png" Margin="0" />
</StackPanel>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
引用类型时,使用x:Type
因此,对于您的 DateFilter 数据模板:
<DataTemplate DataType="{x:Type local:DateFilter}">
我有以下问题:
在 ItemsControl
中,我为不同的 class 定义了一些 DataTemplates
。无缘无故(或者我可能没有意识到),只会呈现 class 名称,而不是模板。当我只使用一个带有 ItemTemplate
而不是 DataTemplate
的模板时,它会起作用。 "Element" classes 是内部的,更改为 public 不会这样做:
<ItemsControl ItemsSource="{Binding FilterElements}" >
<ItemsControl.Resources>
<DataTemplate DataType="local:DateFilter">
<StackPanel Orientation="Horizontal" MaxHeight="35">
<Label Content="From " VerticalAlignment="Center" />
<DatePicker SelectedDate="{Binding StartDate}" MaxWidth="120" BorderThickness="0"
VerticalAlignment="Center" />
<Label Content=" to " VerticalAlignment="Center" />
<DatePicker SelectedDate="{Binding EndDate}" MaxWidth="120" BorderThickness="0"
VerticalAlignment="Center" />
<local:IconButton Icon="Resources/x-8x.png" Margin="0" />
</StackPanel>
</DataTemplate>
<DataTemplate DataType="local:TimeFilter">
<StackPanel Orientation="Horizontal" MaxHeight="35">
<Label Content="Timespan: " VerticalAlignment="Center" />
<xctk:TimePicker StartTime="{Binding StartTime}" EndTime="{Binding EndTime}"
MaxWidth="120" BorderThickness="0"
VerticalAlignment="Center" />
<local:IconButton Icon="Resources/x-8x.png" Margin="0" />
</StackPanel>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
引用类型时,使用x:Type
因此,对于您的 DateFilter 数据模板:
<DataTemplate DataType="{x:Type local:DateFilter}">