WPF - 为什么我的 UserControl 停止工作?
WPF - Why does my UserControl stop working?
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;
}
仅通过取消注释该行,您不会获得依赖关系 属性。您还必须编写正确的 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
以在使用控件时获得更大的灵活性。
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;
}
仅通过取消注释该行,您不会获得依赖关系 属性。您还必须编写正确的 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
以在使用控件时获得更大的灵活性。