Я не могу получить доступ к именам "LeftButton" и "Right Button" с места Listbox.triggers - PullRequest
0 голосов
/ 30 мая 2011
<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

1 Ответ

0 голосов
/ 30 мая 2011

Объекты находятся вне области видимости, из документация :

Вы можете установить это свойство для имени любого элемента в области применения коллекции триггеров (коллекции, частью которой является этот триггер). Обычно это именованный элемент в шаблоне, который содержит этот триггер.

Вы можете присвоить объекту имя, используя синтаксис x: Name.

Если вы хотите активировать посторонние объекты, используйте DataTrigger. (Используйте ListBox.Style.Triggers вместо непосредственных триггеров.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...