WPF - Почему мой UserControl перестает работать? - PullRequest
0 голосов
/ 11 апреля 2020

WPF - Почему мой UserControl перестает работать, когда я раскомментирую закомментированную строку? Когда я комментировал свой элемент управления, он добавлял строки при запуске, когда я раскомментировал его, он не добавляет никаких строк LoadRow() и даже при попытке добавить во время выполнения некоторые функции textbox и button?

Из кода пользовательского UserControl:

    public void LoadRows()
    {
        Rows.Add(new Row("221 331,44", GetOutputFromInput));
        Rows.Add(new Row("2 331,44", GetOutputFromInput));
        Rows.Add(new Row("331,44", GetOutputFromInput));
        Rows.Add(new Row("0,44", GetOutputFromInput));
        Rows.Add(new Row { Input = "333", Output = "555"});
        Rows.Add(new Row { Input = "333", Output = "555"});
    }

    //public DependencyProperty RowsProperty = DependencyProperty.Register("Rows", typeof(ObservableCollection<Row>), typeof(TriggerListAdd));
    public ObservableCollection<Row> Rows
    {
        get;
        set;
    }

1 Ответ

1 голос
/ 11 апреля 2020

Вы не можете получить свойство зависимости, просто раскомментировав эту строку. Вы также должны написать правильную оболочку свойства CLR:

public DependencyProperty RowsProperty = DependencyProperty.Register(
    nameof(Rows),
    typeof(ObservableCollection<Row>),
    typeof(TriggerListAdd));

public ObservableCollection<Row> Rows
{
    get { return (ObservableCollection<Row>)GetValue(RowsProperty);
    set { SetValue(RowsProperty, value);
}

Я бы также рекомендовал изменить тип свойства на IEnumerable, чтобы обеспечить большую гибкость при использовании элемента управления.

...