c# - 将 ObervableCollection 绑定(bind)到 ListBox

标签 c# wpf mvvm

我有以下代码应该在 ListBox 中显示有关 ContactLists 的一些信息,但绑定(bind)似乎存在问题,因为没有显示任何内容。我错过了什么?将不胜感激任何帮助。谢谢!

XAML

</Window>
<Window.Resources>
<DataTemplate x:Key="ContactsTemplate">
        <WrapPanel>
            <TextBlock TextWrapping="Wrap" 
                       Text="{Binding ContactListName, Mode=Default}"/>
        </WrapPanel>
    </DataTemplate>

</Window.Resources>

<Grid x:Name="LayoutRoot" 
      Background="#FFCBD5E6">
    <Grid.DataContext>
        <local:MyViewModel/>
    </Grid.DataContext>

    <ListBox x:Name="contactsList"
             SelectionMode="Extended"
             Margin="7,8,0,35" 
             ItemsSource="{Binding ContactLists}" 
             ItemTemplate="{DynamicResource ContactsTemplate}" 
             HorizontalAlignment="Left" 
             Width="178" 
             SelectionChanged="contactsList_SelectionChanged"/>
</Grid>
</Window>

查看型号
public class MyViewModel
{
    public ObservableCollection<ContactListModel> ContactLists;

    public MyViewModel()
    {
        var data = new ContactListDataAccess();
        ContactLists = data.GetContacts();

    }

}

最佳答案

将 ContactLists 更改为绑定(bind)正常工作的属性:

public class MyViewModel
{
    public ObservableCollection<ContactListModel> ContactLists{get;set;}

    public MyViewModel()
    {
        var data = new ContactListDataAccess();
        ContactLists = data.GetContacts();

    }
}

here了解更多信息。

关于c# - 将 ObervableCollection 绑定(bind)到 ListBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4868166/

相关文章:

c# - MVVM ListBox 鼠标单击不起作用,但 MouseDoubleClick 起作用

c# - 如何在 C# 中创建相对的 Windows 快捷方式?

c# - Visual C# 使用 Excel Interop 一次设置多个单元格

c# - StructureMap - 扫描 - 具有基本实现和特定功能的通用接口(interface)

c# - 使用触发器更改已绑定(bind)到 View 模型的属性

c# - 从 ViewModel 更改选定的选项卡并在 ViewModel 之间发送对象

c# - 动态创建控件时,RadioButton 上的已检查事件命令绑定(bind)不起作用

c# - 如何在运行时从用户分配键盘快捷键,WPF MVVM

c# - 在 C# 中的某个时间间隔后启动进程?

c# - WPF Datagrid-自动刷新