存储和显示按钮网格/多个布局

时间:2012-08-17 12:53:34

标签: c# wpf

我正在使用带MVVM的WPF构建销售点应用程序。

其中一个功能是屏幕上会有一个网格/面板,例如10 x 10个按钮,例如每个库存项目有1个按钮。

我需要做的是允许用户创建新布局或编辑现有布局,他们可以添加新按钮或删除按钮等。

因此,从理论上讲,用户可以选择多种不同的布局,以便在屏幕上显示。

每个按钮都链接到数据库中的库存产品,并且具有颜色,文本,图像等属性。

所以我在想如果我将用户控件设置为10 x 10个按钮或使用Uniform Grid,我可以绑定到一组按钮。我还考虑将每个布局的每个布局按钮存储为XML,然后读取它以创建某种类型的集合并绑定到网格。

例如,用户可以选择在10种不同的屏幕/网格布局中进行选择,每种布局都有自己的按钮组,可以位于不同的位置,或者具有不同的文本等。

我的问题是,这是将按钮和布局存储为XML的最佳方法吗? 我怎么能直接将网格/均匀网格绑定到一组按钮?

非常感谢

1 个答案:

答案 0 :(得分:2)

整体方法对我来说很好。至于将按钮集合绑定到网格,您可以使用ItemsControl和自定义ItemsPanel模板:

    <ItemsControl ItemsSource="{Binding Buttons}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid Rows="10" Columns="10" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button>
                    <!-- bind button color, content, etc -->
                </Button>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>