WPF Datagridview Equivalencies

时间:2015-10-09 15:59:50

标签: c# wpf datagridview datagrid grid

我是WPF的新手(之前我曾使用过Windows Forms)并且我多次使用过DataGridView元素,但是现在我已经在WPF中切换到了DataGrid而且我遇到了麻烦...

我想要做的是当我点击名为size的按钮时,使用名为sizeBox的textBox中输入的尺寸“创建”DataGrid。在代码中的事件内部,我有以下几行:

try
        {
            System.Data.DataTable dt = new System.Data.DataTable();
            int size;
            int i = 0;
            size = Convert.ToInt32(this.sizeBox.Text);
            int sizegridh = Grid.Size.Height;
            int sizegridw = Grid.Size.Width;
            int sizecellh = sizegridh / size;
            int sizecellw = sizegridw / size;
            for (i = 1; i <= size; i++)
            {
                dt.Columns.Add();
                dt.Rows.Add();
                Grid.DataSource = dt;

            }
            for (i = 1; i <= size; i++)
            {
                Grid.Rows[i - 1].Height = sizecellh;
                Grid.Columns[i - 1].Width = sizecellw;

            }
        }

这段代码应该做的是,例如,如果我们输入数字5,在现有DataView上创建一个5x5网格,在我们输入值之前它是空的。

我遇到的问题是:

  • Grid.Size.Height不是一个有效的命令,我在WPF的DataGrid中找不到等价,与Width相同
  • Grid.DataSource = dt;不起作用
  • Grid.Rows [i]或Columns不是选择某个值的正确方法,这是一个等价的值?

提前致谢!

1 个答案:

答案 0 :(得分:1)

  

Grid.Size.Height不是有效命令,我找不到   WPF DataGrid中的等效性,与Width

相同

WidthHeight属性 但是,在设置之前,请注意,WPF是基于 layout 的,而WinForms 基于坐标。简而言之,当您想要明确设置大小时,有相当罕见的情况。在继续之前,我强烈建议您阅读layout controls

  

Grid.DataSource = dt;不起作用

因为有ItemsSource

  

Grid.Rows[i]Columns不是选择特定值的正确方法吗?

WPF就是data binding。不要尝试使用像WinForms中的WPF控件。