WPF绑定GridView与类属性?

时间:2011-03-16 08:14:52

标签: c# .net wpf

我是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并且它有效。

1 个答案:

答案 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定义的方式:

  

数据上下文是一个允许的概念   从中继承信息的元素   他们关于数据的父元素   用于绑定的源,如   以及其他特征   绑定,例如路径。