<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"不代表"Trigger"的有效目标,因为找不到名为"LButton"的元素。确保目标在任何使用它的设置程序、触发器或条件之前声明。
我还试着把触发器放在按钮上,使GroupmembersList成为目标
则无法找到TargetName
F1 F1
对象超出范围,来自文档:
您可以将此属性设置为应用触发器集合(此触发器所属的集合(的范围内的任何元素的名称。这通常是包含此触发器的模板中的命名元素。
可以使用x:name指令语法命名对象。
如果要在外部对象上触发,请使用DataTrigger
。(使用ListBox.Style.Triggers
而不是立即触发器。(