【问题标题】:Binding listbox to object without window datacontext将列表框绑定到没有窗口数据上下文的对象
【发布时间】:2014-02-03 18:16:58
【问题描述】:

我想将我的列表框绑定到一个没有 wpf 窗口绑定到数据上下文的对象:

<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 没有显示任何项目。我做错了什么?

【问题讨论】:

标签: c# wpf


【解决方案1】:

要让ListBox 填充其项目,您应该设置ItemsSource 而不是DataContext

应该是:

lstb_logFiles.ItemsSource = _logFiles;

而不是

lstb_logFiles.DataContext = _logFiles;

【讨论】:

    【解决方案2】:

    您必须将 itemssource 设置为“self”

      <ListBox ItemsSource="{Binding}"/>
    

    或者你可以直接设置itemssource而不是设置datacontext

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

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 2011-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      相关资源
      最近更新 更多