繁体   English   中英

WPF ListView不显示数据

[英]Wpf Listview not displaying data

我有一个如下模型。我不想做任何类似INotify等的事情,因为视图中没有任何变化,我只想在视图中显示名称。 而且在视图模型中,Iam公开了模型属性,因为在mvvm中,视图应仅绑定到视图模型。 但由于某些原因,名称未显示。.请帮助。

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>

每个项目都已绑定到模型。
代替DisplayMemberBinding="{Binding Path=model.name}"使用DisplayMemberBinding="{Binding name}"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM