出于某种原因,在 dataTemplate 中添加的项目不会做我告诉他们做的事情!!
我试图将许多图像水平放置在堆栈面板中,但无论我如何尝试,它们都只能垂直放置。
这是我的 xaml。
<DataTemplate x:Name="View">
<Border BorderBrush="Red" BorderThickness="4" >
<StackPanel Orientation="Horizontal">
<ItemsControl ItemsSource="{Binding Path=_Collection, Mode=OneWay}" >
<ItemsControl.ItemTemplate>
<DataTemplate >
<Image Source="{Binding _Source}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<TextBlock Height="30" FontFamily="Trebuchet MS" FontSize="18" Text="{Binding _Name}" />
</StackPanel>
</Border>
</DataTemplate>
一切都好。这是从用户控件内部调用的
<ItemsControl ItemTemplate="{StaticResource siteView}" ItemsSource="{Binding Path=_SiteDisplay"/>
我的 obervable 集合 _SiteDisplay 包含另一个名为 _Collection 的可观察集合,它保存图像的 url。
这是从真正的代码中删除的,但说明了问题。我无法让图像水平对齐!非常感谢任何帮助 - 或提供更好的方法的建议。
最佳答案
您需要更改 ItemsControl 使用的面板,而不是包含 ItemsControl 的面板:
<ItemsControl ItemsSource="{Binding Path=_Collection, Mode=OneWay}" >
<ItemsControl.ItemTemplate>
<DataTemplate >
<Image Source="{Binding _Source}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate >
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
关于c# - 在 DataTemplate 中排列 ItemsControl 项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6412505/