WPF UserControl奇怪的绑定问题

时间:2010-06-03 10:19:52

标签: wpf listview binding user-controls

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

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

有什么想法吗?我希望这个用户控件能够自行运行(它从DB获取数据并在ListView中表示它)...

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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