我有一个Observable集合,我试图绑定到ItemsControl。以下是我的代码片段。无法将observale集合绑定到ItemsControl
类Sample.ViewModel:
//Observabale collection getter/setter property
public ObservableCollection<SQuestion> SList
{
get
{
return _sList;
}
set
{
if (_sList == value)
return;
_sList = value;
if(PropertyChanged!=null)
PropertyChanged(this, new PropertyChangedEventArgs("ListOfSamples"));
}
}
的.xaml代码:
检视/ Mainwindow.xaml
<ItemsControl Height="422" HorizontalAlignment="Left" Margin="12,12,0,0" Name="listBox1" VerticalAlignment="Top" Width="751" ItemsSource="{Binding SList}" ItemTemplate="{StaticResource perItemTemplate}"/>
在上面的代码中,我的指定的ItemsSource绑定,但在运行我的应用程序时,列表不会出现在ItemsControl中,并且所有内容都显示出来但是,如果我尝试从我的.cs代码隐藏中将源代码分配给Listbox作为listBox1.ItemsSource = SList
,则列表框会填充并按预期工作。
有人可以指出上面的问题,我正在做的绑定,我可以直接绑定xaml而不使用代码隐藏?
如何/在哪里为您的Mainwindow设置'DataContext'?运行时VisualStudio的Output窗口中是否存在绑定错误?顺便提一下,当你提高'PropertyChanged'时,你应该使用你的属性的名字,例如:你应该写'new PropertyChangedEventArgs(“SList”)' – nemesv
@nemesv:我在加载应用程序时添加了这一行 - 'this.DataContent = _collection .SList;'这使得应用程序运行良好。但是,我不知道'DataContext'和你指出的其他事情。你能通过一个链接,我可以快速学习这一点。 (初学WPF相关的东西) – user1372448