具有自定义控件的DataGridTemplateColumn

时间:2018-12-06 19:47:42

标签: c# wpf datagrid custom-controls datagridtextcolumn

我已经创建了自定义控件(图片上的“添加/减去”列)并将其放入DataGrid控件的DataGridTemplateColumn中:

enter image description here

<DataGridTextColumn Binding="{Binding Count}" Header="Count" Width="60"/>
            <DataGridTemplateColumn Width="90" Header="Add/Substract">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <controls:AddSubtractControl HorizontalAlignment="Center" AddSubtractEvent="AddSubtractClick" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

我的自定义控件的主要任务当然是在“计数”列上的实际值上添加/减去一些值。

当用户单击“添加”按钮时,控件将调用具有输入值的某个事件:

private void AddClick(object sender, MouseButtonEventArgs e)
    {
        AddSubstractEvent(int.Parse(countBox.Text), e);
    }

当我单击“添加”或“减”按钮时,在AddClick方法之前,在某些未知情况下,将首先调用此控件的构造函数。因此countBox.Text具有默认值,在单击“添加”按钮之前不会输入。

如何处理此问题? 感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

由于这是一个控件,因此其行为应类似于控件。例如,文本框具有您将绑定的文本依赖项属性。

您应该具有一个依赖项属性,然后可以将其绑定到该值。 也许应该是整数,所以应该是整数类型。

内部。

您的文本框绑定到该dp。

您的+和-按钮增加和减少控件dp的当前值。