在 WPF ItemsControl 中绑定以下列表中的对象
Bind objects in the lists below in WPF ItemsControl
我需要在 ItemsControl 中绑定以下列表的对象,在 中绑定wpf 中的 ScrollViewer 。
我 Provand 分配了一个路径,但我仍然无法绑定,也许我错了?在第一级的主题中绑定成功,但是当我在同一对象的下面的列表中进行绑定时,绑定将不起作用。
Xaml 滚动查看器:
<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视图列表:
我的目标是绑定 Text="{绑定 companies.Attachment.Name}"
如果我打印 Text="{Binding Attachment}" 我在部署时打印的结果是 "(Collection)", 为什么打印Attachment.Name ?
Attachments 是一个 Collection,要可视化一个集合,您应该使用 ListBox 并使用此绑定 ItemsSource="{Binding companies.Attachment}"
,您还需要为 ListBox 定义 ItemTemplate。
使用 ListBox 可以显示所有元素,但如果只想显示第一个附件名称,可以使用此绑定 Text="{Binding companies.Attachment[0].Name}"
或者另一种解决方案可能是创建一个名为 AttachmentToShow 的新 属性 类型的附件并使用此绑定
Text="{Binding AttachmentToShow.Name}"
使用此解决方案更新 AttachmentToShow 将导致 UI 更新。
我需要在 ItemsControl 中绑定以下列表的对象,在 中绑定wpf 中的 ScrollViewer 。 我 Provand 分配了一个路径,但我仍然无法绑定,也许我错了?在第一级的主题中绑定成功,但是当我在同一对象的下面的列表中进行绑定时,绑定将不起作用。
Xaml 滚动查看器:
<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视图列表:
我的目标是绑定 Text="{绑定 companies.Attachment.Name}"
如果我打印 Text="{Binding Attachment}" 我在部署时打印的结果是 "(Collection)", 为什么打印Attachment.Name ?
Attachments 是一个 Collection,要可视化一个集合,您应该使用 ListBox 并使用此绑定 ItemsSource="{Binding companies.Attachment}"
,您还需要为 ListBox 定义 ItemTemplate。
使用 ListBox 可以显示所有元素,但如果只想显示第一个附件名称,可以使用此绑定 Text="{Binding companies.Attachment[0].Name}"
或者另一种解决方案可能是创建一个名为 AttachmentToShow 的新 属性 类型的附件并使用此绑定
Text="{Binding AttachmentToShow.Name}"
使用此解决方案更新 AttachmentToShow 将导致 UI 更新。