[英]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.