我是WPF的新手。
具有名称数组的类属性(从appconfig读取)
class Sample
{
private string[] names;
public string[] Names
{
get
{
names = ConfigurationManager.AppSettings["UserNames"].Split(',');
return machines;
}
set { names = value; }
}
}
我想用这些名称填充WPF Gridview。
这是我的NamesView.xaml:
<ListView>
<ListView.View>
<GridView AllowsColumnReorder="True" >
<GridViewColumn Header="Names" Width="auto" DisplayMemberBinding="{Binding Path=Names}"/>
</GridView>
</ListView.View>
</ListView>
这是我在NamesView.xaml.cs背后的代码:
public partial class ServerView : Windows
{
public ServerView()
{
InitializeComponent();
Sample sample = new Sample();
this.DataContext = sample.Names;
}
}
问题:
无法理解什么是错误?如果有任何网站或资料可供学习,请分享一下吗?
[解决]
实际上,对于网格视图DataContext
无效,我使用Itemssource
并且它有效。
答案 0 :(得分:1)
我会以下一种方式实施:
public class Person
{
public string Name { get; set; }
public List<Person> GetAll()
{
List<Person> names = new List<Person>;
string[] namesArray = ConfigurationManager.AppSettings["UserNames"].Split(',');
foreach(var name in namesArray)
{
names.Add(new Person { Name = name });
}
return names;
}
}
和
<GridView Name="MyGridView" AllowsColumnReorder="True" >
<GridViewColumn Header="Names" Width="auto" DisplayMemberBinding="{Binding Path=Name}" />
</GridView>
和
public void Page_Load(object sender, EventArgs e)
{
InitializeComponent();
Person all = new Person();
MyGridView.DataSource = all.GetAll();
}
修改:数据背景: http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.datacontext.aspx
这是MSDN定义的方式:
数据上下文是一个允许的概念 从中继承信息的元素 他们关于数据的父元素 用于绑定的源,如 以及其他特征 绑定,例如路径。