c# - Wpf Listview不显示数据

标签 c# wpf listview mvvm

我有一个模型如下。我不想做任何像 INotify 等的事情,因为 View 中没有任何变化,我只想在 View 中显示名称。并且在 View 模型中,我公开了模型属性,因为在 mvvm 中, View 应该只绑定(bind)到 View 模型。但由于某种原因,没有显示名称..请帮助..

namespace WpfApplication4
{
    public class Model
    {
        private string _name;
        public string name
        {
            get
            {
                return _name;
            }
            set
            {
                _name = value;
            }
        }

    }

    public class make
    {
        List<Model> mod = new List<Model>();
        public make()
        {
            mod.Add(new Model { name = "Sam" });
            mod.Add(new Model { name = "Pam" });
            mod.Add(new Model { name = "Jam" });
            mod.Add(new Model { name = "Cam" });
        }

        public List<Model> modlist()
        {
            return mod;
        }
    }
}

查看型号:
namespace WpfApplication4
{
    public class ViewModel
    {
        private ObservableCollection<Model> _obcollection;
        private Model _Model;
        public Model model
        {
            get
            {
                return _Model;
            }
            set
            {
                _Model = value;
            }
        }

        public ViewModel()
        {
            Convert();
        }



        public void Convert()
        {
            make m = new make();
            _obcollection = new ObservableCollection<Model>(m.modlist());
        }

        public ObservableCollection<Model> obcollection
        {
            get
            {
                return _obcollection;
            }
            set
            {
                _obcollection = value;
            }
        }
    }
}

和用于主窗口的 Xaml。:
<Grid>
        <ListView Name="lstdemo" ItemsSource="{Binding obcollection}">
            <ListView.View>
                <GridView>
                    <GridView.Columns>
                        <GridViewColumn DisplayMemberBinding="{Binding Path=model.name}" Header="Name" />
                    </GridView.Columns>
                </GridView>
            </ListView.View>
        </ListView>
    </Grid>

最后是 MainWindow.cs
public MainWindow()
        {
            InitializeComponent();
            ViewModel vm = new ViewModel();
            this.DataContext = vm;
        }

最佳答案

我相信您的 xaml 应该如下:

<Grid>
    <ListView Name="lstdemo" ItemsSource="{Binding obcollection}">
        <ListView.View>
            <GridView>
                <GridView.Columns>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=name}" Header="Name" />
                </GridView.Columns>
            </GridView>
        </ListView.View>
    </ListView>
</Grid>

关于c# - Wpf Listview不显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26078699/

相关文章:

java - Android ArrayAdapter 导致 OutOfMemoryException (Content is only a TextView)

c# - RabbitMQ:将消息从一台电脑发送到另一台电脑

c# - 如何同步SQLServer数据库和MySQL数据库

c# - 将 DataGrid 导出到文本文件

c# - WPF 等效于 AccessibleName 属性

java - 在Android中访问ListView复选框

c# - 关于时间和空间: Bloom filter, Hash table和Dictionary哪个好?

c# - 无法加载文件或程序集 'video.player.net.dll' 或其依赖项之一。找不到指定的模块 .":"video.player.net.dll

wpf - MVVM - 绑定(bind)和更新方法

android - 在 ListView 中选择项目使程序崩溃