【问题标题】:How to "Show" button in DataGrid from model created dynamically?如何从动态创建的模型中在 DataGrid 中“显示”按钮?
【发布时间】:2019-05-22 20:13:48
【问题描述】:

我正在创建 CRUD 应用程序,基本上我想做的是创建数据网格,其中每一行都有自己的按钮来减少一个单元格的值(这是通过实体框架从 SQL 获取数据)。就像与数据库一起工作的代码正在工作,或者我稍后会解决这个问题,但我的问题正是在数据网格中显示按钮的方式。

显示如下:System.Windows.Controls.Button。不知道怎么改。

我找了这个问题大约 3 个小时,但我找不到 一个满意的答案,对我有帮助。

负责数据处理的类的一部分

    public Button SubstractByOne = new Button();

    public LearnDayAdvenced(LearningDays learnDay)
    {
        SubstractByOne.Name = "substract";            
        SubstractByOne.Click += new RoutedEventHandler(Button_click);
    }    

    protected void Button_click(object sender, EventArgs e)
    {
        SubstractTime();
    }

以及负责显示和创建数据的代码。 (我知道我应该重构这个,但如果出现问题,就像这样)

ICollection<LearnDayAdvenced> learnDayAdvenceds = new List<LearnDayAdvenced>();

foreach (var learningDay in learningDaysAsSource)
{
    LearnDayAdvenced advencedLearnDay = new LearnDayAdvenced(learningDay);
    learnDayAdvenceds.Add(advencedLearnDay);
}

DataTable learningDataTable = new DataTable("Learn Days");
learningDataTable.Columns.Add(new DataColumn("Subject name", typeof(string)));
learningDataTable.Columns.Add(new DataColumn("time left", typeof(double)));
learningDataTable.Columns.Add(new DataColumn("Substract by 1", typeof(Button)));

foreach (var learnDay in learnDayAdvenceds)
{
    learningDataTable.Rows.Add(learnDay.LearnDay.subjectName, learnDay.LearnDay.learningTimeAmount, learnDay.SubstractByOne);
}

this.DataGrid.ItemsSource = learningDataTable.AsDataView();

【问题讨论】:

  • 您的问题不清楚。你想要每行一个按钮还是每个单元格一个按钮?如果是前者,是否意味着点击该按钮会降低该行所有单元格的值?
  • 我想在“减 1”列的每一行都有一个按钮。基本上我得到的是每行中的 system.windows.controls.button 。单击该按钮会减少一个单元格和数据库中表格内部的值。
  • 你能发布你的Datagrid定义吗?
  • 我 xaml 它只像 "" 带有名称和宽度参数。基本上列定义来自上面代码中的 DataTable。 (也许我应该在某处定义 DataGrid 的外观?)

标签: c# .net wpf button datagridview


【解决方案1】:

请看这里:Add button column to datatable

而是使用模板将按钮分配给每一列。您可以将其从数据表中排除。

Adding a Button to a WPF DataGrid

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    相关资源
    最近更新 更多