绑定关键字是指什么?

6
在这个例子中:
 <TextBox Name="textBox1" Height="23" Text="some text" HorizontalAlignment="Left" Margin="69,12,0,0"  VerticalAlignment="Top" Width="120" />
 <Label Content="{Binding Path=Text, ElementName=textBox1}" Height="28" HorizontalAlignment="Left" Margin="235,12,0,0" Name="label1" VerticalAlignment="Top" />

无论我在文本框中输入什么都会显示在标签上。我正在学习XAML,我相信我理解了大部分绑定(如此例)。但是我认为,即使我理解了发生的事情,了解Binding关键字的含义也是很好的。例如,我可以这样写:

  <ListView ItemsSource="{Binding}" Name="lv1" />

我很难理解绑定(binding)实际上是什么?在 Binding 关键字后面没有任何内容,那么它绑定到了什么?它是指那个控件吗?它类似于 C# 中使用的 this 关键字,它将引用类的当前实例化对象吗?

2个回答

4

这不是一个关键字,而是一种 标记扩展

绑定始终与源相对的 Path 绑定,如果没有路径,则直接绑定到源,可能的源包括 DataContext(如果没有指定其他源则隐式使用)以及 ElementNameSourceRelativeSource。 如果您尚未阅读,请阅读 总览


1

这是窗口属性 DataContext 的绑定。如果其中有一个元素列表,您将在 ListBox 中看到它。

例如,在窗口构造函数中输入 DataContext = new List<string> { "A", "B", "C" };,并在 InitializeComponents(); 之后,您将在 ListBox 中看到该列表。


是的,我相信我知道它是如何工作的。实际上,我将其绑定到了一个linq查询中。因此,当没有指定任何内容(只有{binding}关键字)时,它会引用窗口的数据上下文?如果指定了属性和目标,则会将其绑定到该目标或指定的任何内容? - Tono Nam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接