【问题标题】:Binding List of objects to ListView not working将对象列表绑定到 ListView 不起作用
【发布时间】:2013-06-05 02:09:27
【问题描述】:

我的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 列表进行了循环检查。 这是我的 XAML:

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

什么问题,为什么ListBox 没有填充?

【问题讨论】:

    标签: wpf xaml binding view viewmodel


    【解决方案1】:

    _modules 是一个字段,不能绑定到字段。创建一个公开_modules 值的属性:

    public IEnumerable<Module> Modules
    {
        get { return _modules; }
    }
    

    并改为绑定到此属性:

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

    【讨论】:

    • 试过了,复制粘贴你的例子,不做任何改动,ListBox还是显示为空
    • 那么你应该检查DataContext的值lstModules
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 2020-11-26
      • 2018-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多