2010-05-01 93 views
0

这里是我的页面的XAML代码的和平:WPF组合框结合

  <ComboBox Grid.Row="2" Grid.Column="1" Name="Player2" MinWidth="50" 
       ItemsSource="{Binding PlayersTest}" DisplayMemberPath="ShortName"> 

自定义对象绑定到页面数据方面:

 page.DataContext = new SquadViewModel(); 

下面是部分SquadViewModel的”源代码'class:

public class SquadViewModel 
{ 
    public SquadViewModel() 
    { 
     PlayersTest = new ObservableCollection<SostavPlayerData>(); 
     PlayersTest.Add(new SostavPlayerData { ShortName = "A. Sereda", }); 
     PlayersTest.Add(new SostavPlayerData { ShortName = "D. Sereda", }); 
    } 

    public readonly ObservableCollection<SostavPlayerData> PlayersTest; 

    public string TestText { get { return "Binding works perfectly!"; } } 
} 

因此,ComboBox应该显示一个对象列表,但它是空的。

您知道为什么以及如何获得此列表吗?

谢谢。

P.S.我试过其他XAML标记

  <ComboBox Grid.Row="1" Grid.Column="1" Name="Player1" MinWidth="50" 
       ItemsSource="{Binding PlayersTest}"> 
      <ComboBox.ItemTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding ShortName}"/> 
       </DataTemplate> 
      </ComboBox.ItemTemplate> 
     </ComboBox> 

它没有也行,但结合简单的文本块:

 <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding TestText}"/> 

完美的作品。

回答

3

问题是PlayersTest是一个字段,而不是属性。绑定仅适用于属性。您可以使用自动属性语法保持代码类似您的视图模型声明它:

public ObservableCollection<SostavPlayerData> PlayersTest { get; private set; } 

然后你只需要把它设置为ObservableCollection<SostavPlayerData>一个新实例,你将所有设置。

+0

愚蠢的错误...... :(谢谢你的帮助,现在工作:) – Budda 2010-05-02 05:21:27