在这个例子中:
<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,我相信我理解大多数这样的Bindings。但我认为即使我理解发生了什么,理解Binding关键字引用的内容也会很好吗?例如,我可以:
<ListView ItemsSource="{Binding}" Name="lv1" />
我很难理解绑定实际上指的是什么? Binding关键字后面没有任何内容,那么它绑定到什么?它是指那个控件吗?它是否类似于c#中使用的this关键字,它将引用类的当前实例化对象?
答案 0 :(得分:4)
这不是关键字,而是markup extension。
绑定始终绑定到相对于源的Path
,如果没有直接绑定到源的路径,可能的源是DataContext
,如果没有指定其他源,则隐式使用ElementName
,Source
和RelativeSource
。如果您还没有这样做,请阅读the overview。
答案 1 :(得分:1)
这是对窗口的Property DataContext
的绑定。如果有一个元素列表
那,你会在ListBox中看到它。
例如,在DataContext = new List<string> { "A", "B", "C" };
之后的窗口构造函数中键入InitializeComponents();
,您将在ListBox中看到该列表。