所以我最終決定從WinForms轉移到WPF,並且我的旅程非常有趣。我有一個簡單的應用程序,我將ObservableCollection
綁定到ListBox
。綁定到WPF中的集合
我有一個Animal
實體:
namespace MyTestApp
{
public class Animal
{
public string animalName;
public string species;
public Animal()
{
}
public string AnimalName { get { return animalName; } set { animalName = value; } }
public string Species { get { return species; } set { species = value; } }
}
}
而一個AnimalList
實體:
namespace MyTestApp
{
public class AnimalList : ObservableCollection<Animal>
{
public AnimalList() : base()
{
}
}
}
最後,這裏是我的主窗口:
<Window x:Class="MyTestApp.Window3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyTestApp"
Title="Window3" Height="478" Width="563">
<Window.Resources>
<local:AnimalList x:Key="animalList">
<local:Animal AnimalName="Dog" Species="Dog"/>
<local:Animal AnimalName="Wolf" Species="Dog"/>
<local:Animal AnimalName="Cat" Species="Cat"/>
</local:AnimalList>
</Window.Resources>
<Grid>
<StackPanel Orientation="Vertical" Margin="10,0,0,0">
<TextBlock FontWeight="ExtraBold">List of Animals</TextBlock>
<ListBox ItemsSource="{Binding Source={StaticResource animalList}, Path=AnimalName}"></ListBox>
</StackPanel>
</Grid>
現在,當我運行應用程序,我看到填充了三個項目的列表框:「d」,「O」,而不是「狗」,「G」,「狼」和「貓」:
我有一種強烈的感覺,我在某個地方做了一些愚蠢的事情(AnimalList構造函數可能?),但我無法弄清楚它是什麼。任何幫助表示讚賞。
賓果。那就是訣竅。 – PoweredByOrange 2013-04-25 22:54:04