【发布时间】:2012-01-30 14:30:50
【问题描述】:
我正在尝试在 WPF 中创建一个显示项目列表的界面,尽可能少地占用垂直空间:
我的直觉是使用 ItemsControl 来绑定我的列表,并将每个项目的 UI 放入 WrapPanel。不幸的是,默认情况下,无论窗口大小如何,每个项目都从新行开始。添加带有Orientation="Horizontal" 的 StackPanel 使所有项目都在一行中,无论大小如何...
<!--<ScrollViewer Grid.Row="0" Grid.Column="0"
VerticalScrollBarVisibility="Auto">-->
<ItemsControl Margin="0,4" ItemsSource="{Binding Path=Watchers}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type Core:Watcher}">
<WrapPanel Orientation="Horizontal">
<TextBlock Margin="0,2" Text="{Binding Path=Name}"
Width="250px" />
<TextBox Text="{Binding Path=Value, Mode=OneWay}"
Width="300px">
</TextBox>
</WrapPanel>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
<!--</ScrollViewer>-->
任何指针?
加分项:我应该在哪里添加 ScrollViewer 才能在我的模型中显示行为?
非常感谢!
【问题讨论】:
标签: c# wpf data-binding scrollview itemscontrol