Я изучал, как связать GridView с ObservableCollection. Все примеры выполняют одинаковые шаги, но в моем приложении это не работает.
Я даже скопировал пример здесь: http://www.switchonthecode.com/tutorials/wpf-tutorial-using-the-listview-part-1
DisplayMemberBinding работает при объявлении элементов в XAML, поэтому проблема должна быть в коллекции.
Для XAML:
<ListView ItemsSource="{Binding GameCollection}" Margin="0,123,0,41">
<ListView.View>
<GridView>
<GridViewColumn Width="140" Header="Game Name"
DisplayMemberBinding="{Binding GameName}" />
<GridViewColumn Width="140" Header="Creator"
DisplayMemberBinding="{Binding Creator}" />
<GridViewColumn Width="140" Header="Publisher"
DisplayMemberBinding="{Binding Publisher}" />
</GridView>
</ListView.View>
</ListView>
Для CS
public partial class MainWindow : Window
{
ObservableCollection<GameData> _GameCollection =
new ObservableCollection<GameData>();
public MainWindow()
{
_GameCollection.Add(new GameData
{
GameName = "World Of Warcraft",
Creator = "Blizzard",
Publisher = "Blizzard"
});
_GameCollection.Add(new GameData
{
GameName = "Halo",
Creator = "Bungie",
Publisher = "Microsoft"
});
_GameCollection.Add(new GameData
{
GameName = "Gears Of War",
Creator = "Epic",
Publisher = "Microsoft"
});
InitializeComponent();
Focus();
}
public ObservableCollection<GameData> GameCollection
{ get { return _GameCollection; } }
}
public class GameData
{
public string GameName { get; set; }
public string Creator { get; set; }
public string Publisher { get; set; }
}