我应该使用什么标准的WPF控件?

时间:2012-01-31 01:38:46

标签: wpf xaml controls

我在我的应用程序中尝试主 - 详细信息演示:当选择列表框中的项目时,其详细信息显示在相邻控件中。

此控件将包含一系列测量值,如高度,宽度,重量等。它还将包含一些小图形,如绿色或红色点或中等大小的图像。它也会有一些丰富的文字。

我应该使用哪个STANDARD WPF控件来包含所有这些元素。我正在考虑使用列表框,但想知道是否有更好的控件可供使用。

我主要考虑的是编码的简易性,然后可能是代码的效率。 感谢。

2 个答案:

答案 0 :(得分:1)

列表框表示可以使用DataTemplate进行外观定制的项目列表。在这种情况下,您将显示所选项目的详细信息。我实际上会使用一个容器,例如嵌套在当前UI中的Grid,并有一组stackpanel,包括所选项目的详细信息。

 <Grid>
    <StackPanel>
        <StackPanel Orientation="Vertical">
            <TextBlock>Detail1</TextBlock>
            <TextBox></TextBox>
        </StackPanel>
        <StackPanel Orientation="Vertical">
            <TextBlock>Detail2</TextBlock>
            <TextBox></TextBox>
        </StackPanel>
    </StackPanel>
</Grid>

这只是一个建议,但重点是使用容器并在容器中使用一组控件 - 文本块,文本框,复选框(布尔详细信息)等...这将允许您使用任何必要的控件类型表示所选项目的特定数据字段。

答案 1 :(得分:1)

除非您拥有类似项目的集合,并且希望在某个时刻“选择”一个或多个项目,否则您不希望使用列表框。听起来这不是你想要的细节部分。

你有一个集合,它显示在你的主列表中。您应该将主列表中的SelectedItem绑定到viewmodel中的属性。然后,您可以将相同的属性绑定到UI的详细信息部分。当主列表中的选择发生变化时,您的详细信息UI将自动更新以反映更改。

<ListBox x:Name="masterList" ItemsSource="{Binding MyItems}" SelectedItem="{Binding MySelectedItem, Mode=TwoWay}"></ListBox>
<UserControl x:Name="detailsControl" DataContext="{Binding MySelectedItem}"> </UserControl >