如何使用mvvm模式在wpf中创建按钮矩阵

时间:2012-09-16 07:02:15

标签: c# .net wpf mvvm datagrid

我需要创建一个看起来像矩阵的数据网格 每天及其24小时的矩阵显示按钮 像: 7 6 5 4 3 2 1
             0
             1
             。
             。
             23个
我正在使用MVVM模式,这似乎使其更难实现,
谢谢大家。

1 个答案:

答案 0 :(得分:1)

这样的事情:

<ItemsControl ItemsSource="{Binding DaysOfWeek}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Rows="1"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <ItemsControl ItemsSource="{Binding HoursInDay}">
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <UniformGrid Columns="1"/>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
            </ItemsControl>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

这假设您的数据上下文中有一个名为DaysOfWeek的集合(即在主视图模型中)。每个DayOfWeek对象都会公开一个HoursInDay集合(可能是相同的共享集合)。

说了这么多,数据驱动有什么好处?您的矩阵的尺寸可能会发生变化吗?如果没有,为什么不只是&#34;硬编码&#34;你视图中的矩阵?每个矩阵单元仍然可以绑定到视图模型中的相应数据项。