2016-02-25 5 views
1

мне нужно связывание объектов списков ниже в ItemsControl в связанном приложении ScrollViewer в МОФ. I Provand назначает путь, но я все еще не могу привязываться, может быть, я ошибаюсь? В субъекте первого уровня связывание выполняется успешно, но когда я спускаюсь в списки ниже того же объекта, связывание не будет работать.Привязать объекты в списке ниже в WPF ItemsControl

Xaml ScrollViewer:

<surface:SurfaceScrollViewer Grid.Row="2" VerticalScrollBarVisibility="Hidden" Background="#fff" PanningMode="VerticalOnly"> 
        <ItemsControl x:Name="scrollViewerFolderItemsSource" ItemsSource="{Binding Path=companies}"> 
         <ItemsControl.ItemTemplate> 
          <DataTemplate> 
           <StackPanel> 
            <surface:SurfaceButton Tag="{Binding CPID}" Click="Open_Click" Grid.ColumnSpan="2"> 
             <Button.Template> 
              <ControlTemplate TargetType="{x:Type Button}"> 
               <Border BorderThickness="0,1,0,0" BorderBrush="Gray" Height="57" Background="White"> 
                <Grid> 
                 <Grid.ColumnDefinitions> 
                  <ColumnDefinition Width="80"></ColumnDefinition> 
                  <ColumnDefinition Width="*"></ColumnDefinition> 
                 </Grid.ColumnDefinitions> 
                 <Grid.RowDefinitions> 
                  <RowDefinition Height="60"/> 
                 </Grid.RowDefinitions> 
                 <Grid Grid.Row="0" Background="#fff"></Grid> 
                 <Image Grid.Row="0" Grid.Column="0" Width="32" VerticalAlignment="Center" HorizontalAlignment="Center" Source="{Binding ImageFolder}"></Image> 
                 <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding CompanyName}" Foreground="#565656" FontFamily="{StaticResource Lato Semibold}" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="10" Margin="10,3,0,0" Style="{DynamicResource Lato-Semibold}"/> 
                 <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding companies.Attachments.Name}" Foreground="#565656" FontFamily="{StaticResource Lato Semibold}" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="10" Margin="10,3,0,0" Style="{DynamicResource Lato-Semibold}"/> 
                 <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding AttachmentFolders.Name}" Foreground="#565656" FontFamily="{StaticResource Lato Semibold}" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="10" Margin="10,3,0,0" Style="{DynamicResource Lato-Semibold}"/> 
                </Grid> 
               </Border> 
              </ControlTemplate> 
             </Button.Template> 
            </surface:SurfaceButton> 
           </StackPanel> 
          </DataTemplate> 
         </ItemsControl.ItemTemplate> 
        </ItemsControl> 
       </surface:SurfaceScrollViewer> 

CodeBehind просмотр списка переплетены:

enter image description here

Моя цель является обязательным Text = "{Binding комп anies.Attachment.Name}»

Если я напечатать текст = "{Binding} Приложение" мой результат печати на развертывании является "(Collection)", почему печать Attachment. Имя?

+0

См. [«Если вопросы включают« теги »в их названиях?»] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles), где консенсус «нет, они не должны»! –

ответ

1

Вложения - это коллекция, для визуализации коллекции вы должны использовать ListBox и использовать эту привязку ItemsSource="{Binding companies.Attachment}", вам также необходимо определить ItemTemplate для ListBox.

С ListBox вы в состоянии представить себе все элементы, но если вы хотите, чтобы показать только первое имя приложения вы можете использовать это связывание Text="{Binding companies.Attachment[0].Name}"

или другое решение может быть, чтобы создать новое свойство под названием AttachmentToShow из Тип прикрепленного и использовать эту привязку

Text="{Binding AttachmentToShow.Name}"

с этим раствором обновления AttachmentToShow приведет на обновление пользовательского интерфейса.

+0

Есть метод, который добавляет динамический индекс на [0] в коде? –

+0

Я обновил ответ – frenk91