DataGridTemplateColumn с пользовательским элементом управления - PullRequest
0 голосов
/ 06 декабря 2018

Я создал пользовательский элемент управления (столбец Добавить / Вычесть на рисунке) и поместил его в DataGridTemplateColumn элемента управления DataGrid:

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>

Основной задачей моего пользовательского элемента управления является, конечно, добавление / вычитание некоторого значения к фактическому значению, расположенному в столбце «Count».

Когда пользователь нажимает кнопку «add», элемент управления вызывает некоторое событие с введенным значением:

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

Когда я нажимаю кнопку «добавить» или «вычесть» перед методом AddClick, в некоторых неизвестных случаях сначала вызывается конструктор этого элемента управления.Таким образом, countBox.Text имеет значение по умолчанию, которое не вводится до нажатия кнопки «Добавить».

Как решить эту проблему?Спасибо за любую помощь.

1 Ответ

0 голосов
/ 06 декабря 2018

Поскольку это элемент управления, он должен вести себя как элемент управления.Например, текстовое поле имеет свойство зависимости текста, которое вы бы связали.

У вас должно быть свойство зависимости, которое вы затем можете привязать к значению.Может быть, это целое число, поэтому это будет целочисленный тип.

Внутренне.

Ваше текстовое поле привязывается к этому дп.

Ваши кнопки + и - увеличивают и уменьшают текущее значение dp управления *. 1009 *

...