我有一个模板选择器资源,声明为:
<ResourceDictionary Source="BooleanPortTemplate.xaml" />
<ResourceDictionary Source="StringPortTemplate.xaml" />
<common:TestStepPortTemplateSelector x:Key="portTemplateSelector"
BooleanPortTemplate="{StaticResource booleanPortTemplate}"
StringPortTemplate="{StaticResource stringPortTemplate}"/>
用作:
<ListView Grid.Column="1"
ItemTemplateSelector="{StaticResource portTemplateSelector}"
ItemsSource="{Binding Value,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}" />
我想添加一个包含其他端口的新端口类型,因此我的模板应该知道模板选择器,模板选择器应该知道我的模板。这会带来两个错误:
我上面放置的资源不会看到其他资源。
我得到“在属性表达式中检测到循环”xaml错误。
如何解决这些问题并生成递归UI?
代码错误:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="BooleanPortTemplate.xaml" />
<ResourceDictionary Source="StringPortTemplate.xaml" />
<ResourceDictionary>
<converters:InverseBooleanConverter x:Key="InverseBooleanConverter" />
<common:TestStepPortTemplateSelector x:Key="portTemplateSelectorKey2"
BlockPortTemplate="{StaticResource blockPortTemplate}"
BooleanPortTemplate="{StaticResource booleanPortTemplate}"
StringPortTemplate="{StaticResource stringPortTemplate}"/>
<DataTemplate x:Key="blockPortTemplate">
<Grid HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Style="{StaticResource MainPortGridStyle}">
<ListView Grid.Column="0"
ItemTemplateSelector="{StaticResource portTemplateSelectorKey2}"
ItemsSource="{Binding Value,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</DataTemplate>
</ResourceDictionary>
无法找到blockPortTemplate,因为它位于 selector和ItemTemplateSelector =“{StaticResource portTemplateSelectorKey2}在行中检测到“行信号a”循环 属性异常。“xaml error。