2010-03-24 79 views
0

我们目前正在研究如何实现MVVM,并且我已经将MVVM Light Toolkit设置为混合并且可以如果在Blend中运行,请指定要提供的虚拟数据。都好。WPF - 使用'DisplayMemberPath'时列出项目在Blend中不可见

我创建了一个虚拟的数据列表。该列表包含一个名为DummyItem的具有Age和Name属性的非常简单的类的6个实例。

这里的主代码从我的“DummyList”类:

public class DummyItem{ 

    public string Name; 
    public int Age; 

    public DummyItem(string name, int age){ 
     this.Name = name; 
     this.Age = age; 
    } 
} 

public class DummyList : ArrayList 
{ 
    public DummyList() 
    { 
     this.Add(new DummyItem("Dummy1", 00)); 
     this.Add(new DummyItem("Dummy2", 01)); 
     this.Add(new DummyItem("Dummy3", 02)); 
     this.Add(new DummyItem("Dummy4", 03)); 
     this.Add(new DummyItem("Dummy5", 04)); 
     this.Add(new DummyItem("Dummy6", 05)); 
    } 
} 

这里是我的XAML的执行部分。 DataContext行确实工作并指向正确的ViewModel。

<Grid x:Name="LayoutRoot"> 
    <ListBox x:Name="ListViewBox" 
     DataContext="{Binding Source={StaticResource Locator}, Path=ListViewModel}" 
     ItemsSource="{Binding TheList}" 
     DisplayMemberPath="Name"> 
    </ListBox> 
</Grid> 

的问题是,当我添加“的DisplayMemberPath”,因为我在上面,然后我再也看不到在Blend列表中的项目。如果我删除'DisplayMemberPath',那么我会看到一个包含完整路径的对象列表(DummyItem)。当应用程序运行时,一切正常。这只是在Blend本身,当我使用'DisplayMemberPath'时看不到列表项目。

任何人都知道为什么当我使用DisplayMemberPath时,我看不到Blend本身内的项目?

谢谢!

AT

回答

1

尝试使姓名和年龄属性:

public class DummyItem 
{ 
    public string Name {get; set; } 
    public int Age {get; set;} 

    public DummyItem(string name, int age) 
    { 
     this.Name = name; 
     this.Age = age; 
    } 
} 
+0

绝对正确。没有得到;组;意味着他们没有透露。我不知道你必须得到;组;即使它们是空的。 谢谢! – 2010-03-26 14:14:13

相关问题