繁体   English   中英

将列表框绑定到没有窗口数据上下文的对象

[英]Binding listbox to object without window datacontext

我想将我的列表框绑定到一个对象,而没有将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不显示任何项目。 我究竟做错了什么?

为了使ListBox填充其项目,应设置ItemsSource而不是DataContext

它应该是:

lstb_logFiles.ItemsSource = _logFiles;

并不是

lstb_logFiles.DataContext = _logFiles;

您必须将itemssource设置为“ self”

  <ListBox ItemsSource="{Binding}"/>

或代替设置数据上下文,您可以直接设置itemssource

  public ObservableCollection<FileLog> _logFiles = new ObservableCollection<FileLog>();
  lstb_logFiles.ItemsSource= _logFiles;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM