我想将我的列表框绑定到一个没有wpf窗口绑定到datacontext的对象:
<ListBox Height="Auto" HorizontalAlignment="Left" Margin="0,0,0,0" Name="lstb_logFiles" VerticalAlignment="Stretch" Width="100" SelectionChanged="lstb_threadList_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding dateName,StringFormat=\{0\}}" Foreground="Orange" Margin="10,3,0,3" Width="80" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
这是我设置绑定的地方
public ObservableCollection<FileLog> _logFiles = new ObservableCollection<FileLog>();
lstb_logFiles.DataContext = _logFiles;
这不起作用,我的_logFiles肯定有对象,但lstb_logFiles不显示任何项目。我做错了什么?
答案 0 :(得分:1)
要ListBox
填充其项目,您应设置ItemsSource
而不是DataContext
。
应该是:
lstb_logFiles.ItemsSource = _logFiles;
而不是
lstb_logFiles.DataContext = _logFiles;
答案 1 :(得分:0)
你必须将itemssource设置为“self”
<ListBox ItemsSource="{Binding}"/>
或者代替设置datacontext,您可以直接设置itemssource
public ObservableCollection<FileLog> _logFiles = new ObservableCollection<FileLog>();
lstb_logFiles.ItemsSource= _logFiles;