绑定网格的行数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了绑定网格的行数相关的知识,希望对你有一定的参考价值。

我有一个WP7应用程序,到目前为止,我已经在MVVM框架内实现了。

我现在要扩展此应用程序,其中一部分涉及网格,我不确定是否可以通过绑定来完成我想做的事情。具体来说

将需要可变数量的列-我看不到如何通过绑定来做到这一点。如果可以的话,我想根据列数改变列的宽度

与行相同,涉及可变数字。

我可以使用此处所需的所有信息来设置虚拟机,但是我看不到可以绑定到网格以使其正常工作。我也想在网格中包含一些可变数据,我再也看不到如何通过绑定做到这一点。在我刚刚绑定到对象集合的列表框上工作良好,但这是完全不同的。

这是我应该在后面的代码中生成的情况吗?我很乐意这样做...但是如果可能的话,很乐意尝试通过绑定来完成它。

  • 谢谢
答案

您可以扩展当前的Grid控件并添加一些自定义的依赖项属性(例如,列和行)并绑定到这些。这将允许您保留MVVM模式。

E.G。

public class MyGridControl : Grid
{
    public static readonly DependencyProperty RowsProperty =
        DependencyProperty.Register("Rows", typeof(int), typeof(MyGridControl), new PropertyMetadata(RowsChanged));

    public static readonly DependencyProperty ColumnsProperty =
        DependencyProperty.Register("Columns", typeof(int), typeof(MyGridControl), new PropertyMetadata(ColumnsChanged));

    public static void RowsChanged(object sender, DependencyPropertyChangedEventArgs args)
    {
        ((MyGridControl)sender).RowsChanged();
    }

    public static void ColumnsChanged(object sender, DependencyPropertyChangedEventArgs args)
    {
        ((MyGridControl)sender).ColumnsChanged();
    }

    public int Rows
    {
        get { return (int)GetValue(RowsProperty); }
        set { SetValue(RowsProperty, value); }
    }

    public int Columns
    {
        get { return (int)GetValue(ColumnsProperty); }
        set { SetValue(ColumnsProperty, value); }
    }

    public void RowsChanged()
    {
        //Do stuff with this.Rows
        //E.G. Set the Row Definitions and heights
    }

    public void ColumnsChanged()
    {
        //Do stuff with this.Columns
        //E.G. Set the Column definitions and widths
    }
}

如果您的VM具有属性'Rows'和'Columns',则XAML如下所示:

<local:MyGridControl
  Rows="{Binding Rows}"
  Columns="{Binding Columns}">
</local:MyGridControl>

以上是关于绑定网格的行数的主要内容,如果未能解决你的问题,请参考以下文章

MySQL Workbench 能否在查询结果网格中显示选中的行数?

如何获取 javascript 中用于 flexbox 和网格布局的行数和列数?

如何根据Sencha ExtReact中网格的行数改变行背景颜色?

AI中使用矩形网格工具画好表格了,要怎么修改它的行数和列数

即使没有数据,也可以在 Kendo Grid 中显示固定的行数?

kendo 将 HTML 元素绑定到网格选定的行/dataItem