如何通过DataContext将Collection传递给UserControl的ListBox?

时间:2018-05-18 16:08:35

标签: c# wpf data-binding datacontext

我想通过创建UserControl将ListBox与MainMenu分开。在MainWindow中,为了测试目的,我创建了ObservableCollection(在代码隐藏中)和MainWindow.xaml中我试图通过DataContext将此Collection传递给UserControl

MainWindow.xaml.cs

ObservableCollection<ListItem> coll = new ObservableCollection<ListItem>() 
{ 
    new TextListItem 
    {
        Content = "Some Text", CreationDate = DateTime.Now, VisibleName = "Title" 
    } 
};

MainWindow.xaml

<userControls:ListBoxUserControl DataContext="{Binding Path=coll}"/>

ListBoxUserControl.xaml 中,我试图像那样访问Collection

<ListBox x:Name="listBox" ItemsSource="{Binding}"/>

但似乎没有用。如何正确地通过DataContext传递Collection?

1 个答案:

答案 0 :(得分:1)

coll应该是MainWindow类的属性。正如我目前所读到的那样,它只是一个变量,在您离开定义它的方法(我认为构造函数)之后它将超出范围。