<GroupBox BorderThickness="0" Grid.Row="1" Header="Members" Style="{StaticResource CenteredHeaderGroupBoxStyle}">
<GroupBox.HeaderTemplate>
<DataTemplate>
<Border>
<Grid HorizontalAlignment="Center">
<ToggleButton Name="LButton" Content="Members" Style="{StaticResource TabL}" />
<ToggleButton Name="RButton" Content="Groups" Style="{StaticResource TabR}" />
</Grid>
</Border>
</DataTemplate>
</GroupBox.HeaderTemplate>
<GroupItem>
<Border>
<ListBox Name="GroupMemberList" ItemsSource="{Binding Path=MembersoftheCase}">
<ListBox.Triggers>
<Trigger SourceName="LButton" Property="IsChecked" Value="True">
<Setter Property="ListBox.ItemsSource" Value="{Binding Path=MembersoftheCase}"/>
<Setter Property="ListBox.ItemTemplate" Value="{StaticResource MListTemplate}"/>
</Trigger>
<Trigger SourceName="RButton" Property="IsChecked" Value="True">
<Setter Property="ListBox.ItemsSource" Value="{Binding Path=GroupsoftheCase}"/>
<Setter Property="ListBox.ItemTemplate" Value="{StaticResource GListTemplate}"/>
</Trigger>
</ListBox.Triggers>
</ListBox>
</Border>由于此错误,我在编译时得到异常,因此设计器没有加载。
属性“SourceName”不代表“触发器”的有效目标,因为没有找到名为“LButton”的元素。确保目标在使用它的任何设置程序、触发器或条件之前声明。
我也尝试过将触发器放在按钮上,使GroupmembersList成为目标
然后找不到TargetName就来了
F1 F1
发布于 2011-05-30 14:16:08
对象超出了作用域,来自文献资料
可以将此属性设置为应用触发器集合(此触发器所属的集合)范围内的任何元素的名称。这通常是包含此触发器的模板中的命名元素。 可以使用x:Name指令语法命名对象。
如果要在外部对象上触发,请使用DataTrigger。(使用ListBox.Style.Triggers而不是直接触发器。)
https://stackoverflow.com/questions/6177263
复制相似问题