【问题标题】:How to create a button matrix in wpf with mvvm pattern如何使用 mvvm 模式在 wpf 中创建按钮矩阵
【发布时间】:2012-09-08 19:53:55
【问题描述】:

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

【问题讨论】:

  • 使用MVVM,您不会创建界面,而是创建 UI 和数据之间的链接。你有什么问题?
  • 我的问题是我不知道如何在矩阵集合和我的 xmal 之间连接以呈现我所描述的数据网格。
  • listview我可以帮您一把

标签: c# .net wpf mvvm datagrid


【解决方案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 集合(可能是同一个共享集合)。

说了这么多,数据驱动的优势是什么?您的矩阵可能会改变尺寸吗?如果不是,为什么不在您的观点中“硬编码”矩阵?每个矩阵单元仍然可以绑定到视图模型中的适当数据项。

【讨论】:

  • 非常感谢。你能向我解释一下我该如何硬编码。
  • 实际上我更喜欢将单元格绑定到我的视图模型中的适当位置,我只是不知道该怎么做......
猜你喜欢
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
  • 1970-01-01
  • 2013-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-18
相关资源
最近更新 更多