如何在CodeBehind中使用已定义的DependencyProperty?
这是我的DependencyProperty:
ItemContainerProperty = DependencyProperty.Register("ItemContainer",
typeof(ObservableCollection<Item>), typeof(Manager));
}
public ObservableCollection<Item> ItemContainer
{
get { return (ObservableCollection<Item>)GetValue(ItemContainerProperty); }
set { SetValue(ItemContainerProperty, value); }
}
当我这样做时:
for (int i = 0; i <= ItemContainer.Count - 1; i++)
{
}
我得到以下errormessage:内部异常:对象引用未设置为对象的实例。
如何在我的代码中使用该属性?
答案 0 :(得分:1)
如果您不打算为DependencyProperty定义默认值,那么您需要在某个时刻设置它,它的默认值为null。
public partial class MainWindow : Window
{
public ObservableCollection<string> Items
{
get { return (ObservableCollection<string>)GetValue(ItemsProperty); }
set { SetValue(ItemsProperty, value); }
}
public static readonly DependencyProperty ItemsProperty =
DependencyProperty.Register("Items", typeof(ObservableCollection<string>), typeof(MainWindow));
public MainWindow()
{
InitializeComponent();
Items = new ObservableCollection<string>();
}
}
如果您不想这样做,那么您可以在依赖项属性声明中定义默认值。
public partial class MainWindow : Window
{
public ObservableCollection<string> Items
{
get { return (ObservableCollection<string>)GetValue(ItemsProperty); }
set { SetValue(ItemsProperty, value); }
}
public static readonly DependencyProperty ItemsProperty =
DependencyProperty.Register("Items", typeof(ObservableCollection<string>), typeof(MainWindow), new PropertyMetadata(new ObservableCollection<string>()));
public MainWindow()
{
InitializeComponent();
}
}