为什么在这种情况下需要绑定

时间:2010-09-03 07:19:55

标签: c# wpf

我正在启动WPF,查看How do o: Getting started with Entity Framework

我很高兴为什么需要

<ListBox Name="ListBox1" ItemsSource="{Binding Source={StaticResource CustomerSource}}" >

为什么我不能

<ListBox Name="ListBox1" ItemsSource="{StaticResource CustomerSource}" >

我怎么知道什么时候需要Binding。因为在第一个想法,就像我在Styles中使用静态资源

<Button Style="{StaticResource someStyle}"

为什么不

<Button Style="{Binding Source={StaticResource someStyle}}"

2 个答案:

答案 0 :(得分:2)

此示例使用指定的键将值从资源中分配分配给Text属性

<TextBox Text="{StaticResource SomeText}" />

此示例将Text属性绑定到使用指定键从资源检索到的对象上的属性

<TextBox Text="{Binding Source={StaticResource SomeObject}, Path=SomeProperty}" />

Binding class被用于的数据绑定即表面从GUI上的数据源检索数据,使用户能够与其交互的一种方式。如果没有数据绑定,则只需将值分配给UI上的控件。

Bindings在UI控件和与之关联的底层数据源之间添加一个抽象层,从而提供服务的反弹。以下是一些最重要的内容:

  • 在任一方向或两个方向上自动传播UI和数据源之间的数据变化
  • 转换/格式化值
  • 通过活动通知

相关资源:

答案 1 :(得分:0)

您也可以在父控件上设置DataContext。 例如,ListBox包含在例如StackPanel中。

<StackPanel x:Name="parentControl" DatContext="{StaticResource CustomerSource}">
<ListBox x:Name="ListBox1" ItemSource="{Binding}">
...
</ListBox>
</StackPanel>