DataContext не допустим, поэтому связывание не происходит - PullRequest
0 голосов
/ 31 мая 2011
   <Grid>
      <CheckBox  Content="Select All" IsChecked="{Binding Path=SelectAll}"/>
      <TextBlock Grid.Column="1" Text="Filter by:"  />
      <RadioButton IsChecked="{Binding Path=All}" GroupName="filterGroup" Content="All" />
      <RadioButton IsChecked="{Binding Path=NShared}" GroupName="filterGroup" Content="Not Shared" />
   </Grid>
   <GroupBox Header="Members" Style="{StaticResource CenteredHeaderGroupBoxStyle}" Width="330">
      <GroupBox.HeaderTemplate>
           <DataTemplate>
                <Border Width="320">
                    <Grid HorizontalAlignment="Center" Width="320">
                       <ToggleButton Name="LeftButton" Command="{Binding Path=MemeberButtonSelected}"/>
                       <ToggleButton Name="RightButton" IsChecked="{Binding Path=GroupSelected}"/>
                     </Grid>
                 </Border>
            </DataTemplate>
       </GroupBox.HeaderTemplate>
       <GroupItem>
          <Border>
            <ListBox Name="GroupMemberList">
                <ListBox.Style>
                    <Style>
                       <Style.Triggers>
                           <DataTrigger Binding="{Binding Path=GroupSelected}" Value="True">
                                <Setter Property="ListBox.ItemsSource" Value="{Binding Path=GroupsoftheCase}"/>
                                <Setter Property="ListBox.ItemTemplate" Value="{StaticResource GroupListTemplate}"/>
                                <Setter Property="ListBox.SelectedValue" Value="{Binding Path=SelectedGroups}"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding Path=MemberSelected}" Value="True">
                                <Setter Property="ListBox.ItemsSource" Value="{Binding Path=MembersoftheCase}"/>
                                <Setter Property="ListBox.ItemTemplate" Value="{StaticResource MembersListTemplate}"/>
                                <Setter Property="ListBox.SelectedValue" Value="{Binding Path=SelectedMembers}"/>
                            </DataTrigger>
                       </Style.Triggers>
                    </Style>
                </ListBox.Style>
             </ListBox>
          </Border>
       </GroupItem>
   </GroupBox>

Привязка ToggleButton не работает Свойства / команды существуют в DataContext представления

, но в выводе указано

Система.Windows.Data Ошибка: 40: Ошибка пути BindingExpression: свойство 'MemeberButtonSelected' не найдено в 'объекте' '' Строка '(HashCode = -1399923548)'.BindingExpression: Path = MemeberButtonSelected;DataItem = 'String' (HashCode = -1399923548);Целевым элементом является 'ToggleButton' (Name = '');Свойство target - «Command» (тип «ICommand»)


System.Windows.Data Ошибка: 40: ошибка пути BindingExpression: свойство «GroupSelected» не найдено в «объекте»'' String '(HashCode = -1399923548)'.BindingExpression: Path = GroupSelected;DataItem = 'String' (HashCode = -1399923548);Целевым элементом является 'ToggleButton' (Name = '');Свойство target - IsChecked (тип Nullable`1)

Я также попробовал Относительный источник

как

 IsChecked="{Binding Path=MemberSelected, RelativeSource={RelativeSource AncestorType={x:Type GroupBox}}}"

для одного изКнопки переключения и его нет Использовать только строку в выводе изменится на объект, который все

Ответы [ 2 ]

2 голосов
/ 31 мая 2011

Header вашего GroupBox является строкой ("Участники"), поэтому DataContext в HeaderTemplate также является строкой ... и у типа * 1006 нет свойства MemeberButtonSelected*, как указано в сообщении об ошибке.Вам необходимо привязать к DataContext из GroupBox:

...
<Grid HorizontalAlignment="Center" Width="320">
   <ToggleButton Name="LeftButton" Command="{Binding Path=DataContext.MemeberButtonSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type GroupBox}}}"/>
   <ToggleButton Name="RightButton" IsChecked="{Binding Path=DataContext.GroupSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type GroupBox}}}"/>
 </Grid>
...
0 голосов
/ 31 мая 2011

Какой тип объекта DataContext вы передаете этому? Ваш вывод говорит строку, так что где-то вы получаете неправильные данные. Попробуйте установить точку останова после каждого экземпляра, где обновляются все данные, к которым вы привязываете. В качестве альтернативы, если у вас есть Крот , вы можете использовать это для непосредственного просмотра текстовых данных предметов.

...