【问题标题】:WPF UserControl weird binding problemWPF UserControl 奇怪的绑定问题
【发布时间】:2011-02-27 05:51:33
【问题描述】:

我使用了一个功能区窗口,在“下方的内容区域”中有一个网格,我将在其中显示用户控件。为了演示我的问题,让我们看一下这个简单的 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; }
}

父窗口:

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

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

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

谢谢!

【问题讨论】:

  • 你能说一下public TestSnpList()是什么吗?您是否能够使用调试器访问代码this.lvPersonList.ItemsSource = personList;I get full class names你得到类名Person了吗?
  • 啊抱歉,这个TestSnpList是一个真正的类名(我在这里重命名了它,我忘了重命名构造函数)。是的,我可以到达它 - 它有 2 个项目(myNamespace.Person)。当 listView 呈现时,我可以看到如下两个项目: myNamespace.Person myNamespace.Person 有什么想法吗?

标签: wpf listview binding user-controls


【解决方案1】:

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

http://i977.photobucket.com/albums/ae255/HekoSLO/designModeVSrunning.png

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多