C# WPF绑定库和模型
我有两个类,C# WPF绑定库和模型,c#,wpf,data-binding,C#,Wpf,Data Binding,我有两个类,Handy(它是一个带有ID、姓名和年份的模型)和一个HandyRepository 我的HandyRepository如下所示: private IList<Handy> list = new List<Handy>(new Handy[] { new Handy{ ID=1, Name="Nokia ", Jahr=1999}, new Handy{ ID=2, Name="HTC m", Jahr=2333},
Handy
(它是一个带有ID、姓名和年份的模型)和一个HandyRepository
我的HandyRepository如下所示:
private IList<Handy> list = new List<Handy>(new Handy[] {
new Handy{ ID=1, Name="Nokia ", Jahr=1999},
new Handy{ ID=2, Name="HTC m", Jahr=2333},
new Handy{ ID=3, Name="Samsung", Jahr=2134} });
public IEnumerable<Handy> GetList()
{
return this.list;
}
private IList list=new list(new Handy[]{
新Handy{ID=1,Name=“Nokia”,Jahr=1999},
新Handy{ID=2,Name=“HTC m”,Jahr=2333},
新Handy{ID=3,Name=“Samsung”,Jahr=2134});
公共IEnumerable GetList()
{
返回此.list;
}
现在,我希望将该数据保存到wpf应用程序中的列表框中,而不在代码隐藏文件中编写任何代码
我的尝试:
xmlns:local="clr-namespace:Handy"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.DataContext>
<local:Handy></local:Handy>
</Grid.DataContext>
<ListBox Name="lbBinding" ItemsSource="{Binding Name}"></ListBox>
</Grid>
xmlns:local=“clr命名空间:Handy”
Title=“MainWindow”Height=“350”Width=“525”>
那不行。我在推理上有基本的错误吗?如何解决此问题?您尚未将ItemsSource绑定到实际集合。首先,您需要创建一个集合,并为其提供一个可以识别该集合的密钥:
<x:Array x:Key="HandyList" Type="{x:Type local:Handy}">
<local:Handy Name="Nokia " Jahr="1999" ID="1" />
<local:Handy Name="HTC m", Jahr="2333" ID="2" />
</x:Array>
然后可以将XAML中的ItemsSource绑定到{Binding Path=HandyList}。当然,不要忘记构建列表并填充它…您还没有将ItemsSource绑定到实际的集合。首先,您需要创建一个集合,并为其提供一个可以识别该集合的密钥:
<x:Array x:Key="HandyList" Type="{x:Type local:Handy}">
<local:Handy Name="Nokia " Jahr="1999" ID="1" />
<local:Handy Name="HTC m", Jahr="2333" ID="2" />
</x:Array>
然后可以将XAML中的ItemsSource绑定到{Binding Path=HandyList}。当然,别忘了构建列表并填充它……只是看一下而已!ItemsSource属性告诉我{“'Handy.HandyModel”不是属性'ItemsSource'的有效值。}Woops!很抱歉,我没有注意到资源是一个单独的Handy,而不是它的集合,ListBox至少需要绑定一个IEnumerable。我会做一些编辑。只是,看样子!ItemsSource属性告诉我{“'Handy.HandyModel”不是属性'ItemsSource'的有效值。}Woops!很抱歉,我没有注意到资源是一个单独的Handy,而不是它的集合,ListBox至少需要绑定一个IEnumerable。我会做一些编辑。
<ListBox ItemsSource="{StaticResource HandyList}"
Name="lbBinding"
DisplayMemberPath="Name" />
public List<Handy> HandyList { get; set; }
DataContext = this;