c# WPF数据模板绑定

本文关键字:绑定 数据 WPF | 更新日期: 2023-09-27 18:18:00

我将MyListBox绑定到MyObject实例列表。MyObject包含一个名为TextField的字符串字段。我想将listBox中的每个项目绑定到MyObject.TextField。我的代码如下,但它不起作用。

<ListBox Name="MyListBox">
    <ListBox.ItemTemplate>
            <DataTemplate>                
                    <TextBlock Text="{Binding Path=TextField}"></TextBlock>
            </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

正确的方法是什么?

已解决:我的对象的类的TextField不是一个属性

c# WPF数据模板绑定

确保设置ListBox的ItemsSource:

<ListBox Name="MyListBox" ItemsSource="{Binding theList}">
    <ListBox.ItemTemplate>
            <DataTemplate>                
                    <TextBlock Text="{Binding TextField}" />
            </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

编辑:我在VS 2010中尝试了解决方案…下面是代码

首先创建自己的类,例如person class

class Person
{
    public Person(String name)
    {
        this.name = name;
    }
    String name;
    public String Name
    {
        get { return name; }
        set { name = value; }
    }
}

然后在xaml中创建如下的列表框

<ListBox Height="222" HorizontalAlignment="Left" Margin="105,28,0,0" Name="listBox1" VerticalAlignment="Top" Width="120" ItemsSource="{Binding}" >
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Path=Name}" />
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

注意在xaml中Path=Name是你想要在列表框中显示的属性

在后面的代码文件中,输入以下代码
        List<Person> persons = new List<Person>();
        persons.Add(new Person("person 1"));
        persons.Add(new Person("person 2"));