<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>
我在编译时遇到异常,因为此错误导致Designer未加载
属性'SourceName'不代表'Trigger'的有效目标,因为找不到名为'LButton'的元素。确保在任何使用它的Setter,Triggers或Conditions之前声明目标。
我也尝试将触发器置于按钮本身,将GroupmembersList作为目标
然后找不到TargetName
F1 F1
答案 0 :(得分:0)
对象超出范围,来自the documentation:
您可以将此属性设置为应用触发器集合(此触发器所属的集合)范围内的任何元素的名称。这通常是包含此Trigger的模板中的命名元素。
您可以使用x:Name Directive语法命名对象。
如果要触发异物,请使用DataTrigger
。 (使用ListBox.Style.Triggers
而不是直接触发器。)