Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF用户控件绑定问题_Wpf_Listview_Binding_User Controls - Fatal编程技术网

WPF用户控件绑定问题

WPF用户控件绑定问题,wpf,listview,binding,user-controls,Wpf,Listview,Binding,User Controls,我使用一个功能区窗口,在“下面的内容区域”我有一个网格,我将在其中显示用户控件。为了演示我的问题,让我们看看这个简单的UserControl: <ListView x:Name="lvPersonList"> <ListView.View> <GridView> <GridViewColumn Width="120" Header="Name" DisplayMemb

我使用一个功能区窗口,在“下面的内容区域”我有一个网格,我将在其中显示用户控件。为了演示我的问题,让我们看看这个简单的UserControl:

        <ListView x:Name="lvPersonList">
        <ListView.View>
            <GridView>
                <GridViewColumn Width="120" Header="Name" DisplayMemberBinding="{Binding Name}"/>
                <GridViewColumn Width="120" Header="Height" DisplayMemberBinding="{Binding Height}"/>
            </GridView>
        </ListView.View>
    </ListView>

以及守则:

public partial class MyUserControl: UserControl
{
    private List<Person> personList;

    public TestSnpList()
    {
        InitializeComponent();
        this.personList = new List<Person>();
        this.personList.Add(new Person { Name = "Chuck Norris", Height = 210 });
        this.personList.Add(new Person { Name = "John Rambo", Height = 200 });
        this.lvPersonList.ItemsSource = personList;
    }
}
public class Person
{
    public string Name { get; set; }
    public int Height { get; set; }
}
公共部分类MyUserControl:UserControl
{
私人名单个人名单;
公共测试列表()
{
初始化组件();
this.personList=新列表();
this.personList.Add(newperson{Name=“Chuck Norris”,Height=210});
this.personList.Add(newperson{Name=“johnrambo”,Height=200});
this.lvPersonList.ItemsSource=personList;
}
}
公共阶层人士
{
公共字符串名称{get;set;}
公共整数高度{get;set;}
}
父窗口:

    <Grid x:Name="grdContent" DockPanel.Dock="Top">
        <controls:MyUserControl x:Name="myUserControl" Visibility="Visible"/>
    </Grid>

我不明白为什么这个绑定不起作用。我得到的不是值(名称和高度),而是完整的类名。如果我在窗口中使用此代码,它可以正常工作

有什么想法吗?我希望这个用户控件自己工作(它从数据库中获取数据并在ListView中表示)


谢谢

问题似乎出在RibbonWindow上。 如果我使用Window和UserControl绑定,效果很好,但如果我使用RibbonWindow(Odyssey Ribbon),绑定就不起作用。我不明白的是,在设计模式下,我可以看到正确的值,而在运行模式下,我只能看到类名:


你能说说什么是
publictestsnplist()
吗?您是否能够访问代码
this.lvPersonList.ItemsSource=personList使用调试器
我得到完整的类名
你得到类名Person了吗?啊,很抱歉,这个TestSnpList是一个真实的类名(我在这里重命名了它,我忘了重命名构造函数)。是的,我一定能找到它-它有两个项目(myNamespace.Person)。呈现listView时,我可以看到两个类似的项:myNamespace.Person myNamespace.Person有什么想法吗?