C# 由于插入了代码,无法找到触发器目标
我遇到了这个错误“找不到触发器目标‘connectStatus’。(目标必须出现在使用它的任何设置程序、触发器或条件之前。)”我不知道为什么。目标已在DataTrigger之前定义,这很奇怪C# 由于插入了代码,无法找到触发器目标,c#,wpf,xaml,wpf-controls,C#,Wpf,Xaml,Wpf Controls,我遇到了这个错误“找不到触发器目标‘connectStatus’。(目标必须出现在使用它的任何设置程序、触发器或条件之前。)”我不知道为什么。目标已在DataTrigger之前定义,这很奇怪 <DataTemplate DataType="{x:Type src:ScannedStimulatorItem}"> <src:ScannedItem/> <DataTemplate.Triggers>
<DataTemplate DataType="{x:Type src:ScannedStimulatorItem}">
<src:ScannedItem/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Connected}"
Value="true">
<Setter TargetName="AutomationConnectStatus"
Property="AutomationProperties.ItemStatus"
Value="ConnectionState:true"/>
<Setter TargetName="ConnectStatus" //Error here
Property="Fill"
Value="{StaticResource OnBrush}" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
ScannedItem是放入另一个xaml文件的一大块代码。在此重构之前,我没有发现错误。在这个ScannedItem用户控件中
<Grid x:Name="LayoutRoot">
// Row and Column definitions
// Lots of xaml code
<TextBlock x:Name="AutomationConnectStatus"
AutomationProperties.AutomationId="{Binding Serial, StringFormat=CONNECT_\{0\}ConnectionStatus_Icon}"
AutomationProperties.ItemStatus="ConnectionState:false">
<InlineUIContainer>
<Ellipse x:Name="ConnectStatus"
Width="12"
Height="12"
Fill="{StaticResource OffBrush}"
/>
</InlineUIContainer>
</TextBlock>
</Grid>
//行和列定义
//大量的xaml代码
另一个奇怪的观察结果是:AutomationConnectionStatus根本没有出现这个错误(我删除了connectStatus触发器以进行检查)。另外,我认为InlineUIContainer不是问题所在,因为我还有其他触发器存在此问题,但它们没有在InlineUIContainer中定义。对此表示抱歉。我之前尝试过不同的事情,结果就是不一致;然而,这不是问题的原因。我已经编辑了我的文章来纠正错误。我不确定你能不能像那样插入到数据模板中。当我直接剪切并粘贴xaml时,我没有发现错误。谢谢Jeff。如果有人知道,你能告诉我为什么会这样吗?我假设插入代码只是将ScannedItem的内容复制到DataTemplate中。另外,将xaml插入另一个xaml文件的概念是否有一个标准名称?