我正在使用Linq To Sql来填充带有Segment对象的列表框,其中Segment是设计者创建的/ ORM生成的类.
<Window x:Class="ICTemplates.Window1"
...
xmlns:local="clr-namespace:ICTemplates"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<DataTemplate x:Key="MyTemplate">
<!-- <DataTemplate DataType="x:Type local:Segment"> -->
// some stuff in here
</DataTemplate>
</Window.Resources>
<ListView x:Name="tvwSegments" ItemsSource="{Binding}" ItemTemplate="{StaticResource MyTemplate}" MaxHeight="200"/>
// code-behind
var queryResults = from segment in tblSegments
where segment.id <= iTemplateSid
select segment;
tvwSegments.DataContext = queryResults;
Run Code Online (Sandbox Code Playgroud)
这有效.
但是,如果我使用了类型化数据模板(通过在模板上替换x:Key和DataType属性,所有项都显示为ICTemplates.Segment
(ToString()返回值)
概念是它应该自动获取数据模板类型匹配.有人能在这里发现错误吗?
Gis*_*shu 31
Ze Mistake在这里
<DataTemplate DataType="x:Type local:Segment"> <!-- doesn't work -->
Run Code Online (Sandbox Code Playgroud)
应该
<DataTemplate DataType="{x:Type local:Segment}">
Run Code Online (Sandbox Code Playgroud)
回到家......制作了一个玩具样品,它适应了这种变化.得试试@明天工作.Sheesh ..因为缺少2个曲线..
更新:找到另一个问题
<DataTemplate x:Key="SegTemplate" DataType="{x:Type local:Segment}"> <!-- doesn't work -->
Run Code Online (Sandbox Code Playgroud)
不行.看起来你可以使用Key OR DataType属性.要使这种类型化的数据模板工作..必须删除Key属性,现在它按预期工作.行为对于HierarchicalDataTemplate也是一致的.
<DataTemplate DataType="{x:Type local:Segment}">
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3774 次 |
最近记录: |