这怎么可能是溢出异常......?
<DataTemplate x:Key="ElementTemplate">
<StackPanel Orientation="Horizontal">
<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<Style.Triggers>
<DataTrigger Binding="{Binding Converter={StaticResource TypeConv}}" Value="{x:Type models:GroupModel}">
<Setter Property="Margin" Value="5 0 0 0"></Setter>
<Setter Property="DataContext" Value="{Binding Model}"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<TextBlock Text="{Binding Name}"></TextBlock>
...
<StackPanel/>
<DataTemplate/>
原因:这是一个通常需要模型 A 作为数据类型的模板(至少有 25 个 UI 控件)。是DataTemplate
一个ListvVew
ItemTemplate
。但是数据类型可以是模型 B 类型。模型 B 有一个名为“模型”的属性,它是模型 A 类型。因此,与其复制粘贴整个块模板并使用样式触发器或DataTemplate
选择器,我只想更改DataContex
t (从“{Binding}”到“{Binding Model}”)
任何人有一些建议,解决方案?
谢谢!
编辑:Converter
返回传入值的类型(数据对象本身)。这样我就可以知道模型 B 何时使用模板,从而更改 DataContext。