将对象列表绑定到ListView不起作用

时间:2013-06-05 02:09:28

标签: wpf xaml binding view viewmodel

我的ListView绑定存在问题,但未在列表中显示任何内容。 我有以下ViewModel:

namespace Users.ViewModel
{
    public class AllUsersViewModel
    {
        public List<Module> _modules = new List<Module>();

        #region Constructor

        public AllUsersViewModel()
        {
            this.SetModuleList();
        }

        void SetModuleList()
        {
            _modules = ModuleRepository.GetModules();
        }
    }
}

GetModules()函数返回设置就好了。我已经通过_modules List循环检查了一下。 这是我的XAML:

<ListBox x:Name="lstModules" Width="190" ItemsSource="{Binding _modules}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding ModuleName}"></TextBlock>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

问题是什么,ListBox为什么不填充?

2 个答案:

答案 0 :(得分:1)

_modules是一个字段,您无法绑定到字段。创建一个公开_modules

值的属性
public IEnumerable<Module> Modules
{
    get { return _modules; }
}

并绑定到此属性:

<ListBox x:Name="lstModules" Width="190" ItemsSource="{Binding Modules}">

答案 1 :(得分:0)

Modules集合应该是属性,而不是变量。

public List<Module> Modules { get; set; }