哪个对象是此绑定的来源?

时间:2013-10-29 06:55:01

标签: wpf data-binding datagrid

我看到DataGrid数据绑定sytax如下:

ItemsSource="{Binding Path=ListDataColumns, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}"

更完整的代码是:

    <DataGrid KeyboardNavigation.ControlTabNavigation="Local" KeyboardNavigation.IsTabStop="False"  DataContext="{Binding}"
              ItemsSource="{Binding Path=ListDataColumns, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}"
              AutoGenerateColumns="False" x:Name="DataGridColumnConfig" VerticalAlignment="Top" AllowDrop="True"
              IsSynchronizedWithCurrentItem="True" CanUserSortColumns="False" CanUserDeleteRows="False"
              CanUserAddRows="False"  GridLinesVisibility="All" SelectedItem="{Binding Path=SelectedItem}" SelectedIndex="{Binding Path=SelectedItemIndex}">

我认为代码绑定到名为“ListDataColumns”的属性。

如何从ItemSource确定哪个对象被绑定?

1 个答案:

答案 0 :(得分:1)

要完全回答您的问题,我们需要您提供更多信息。但是,根据您提供的内容(以及使用简化的XAML示例),我们可以告诉您以下内容:

<DataGrid DataContext="{Binding}" ItemsSource="{Binding Path=ListDataColumns, 
    Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, 
    UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Path=SelectedItem}" 
    SelectedIndex="{Binding Path=SelectedItemIndex}" ... />
  1. DataContext设置为{Binding},与{Binding Path=.}相同,表示我们绑定到当前Binding.Source ...换句话说,其中一个此控件的父级应该将对象的实例设置为其DataContext,并且此控件将共享该对象,并且可以访问相同的属性。
  2. ItemsSource属性设置为{Binding Path=ListDataColumns ...},与{Binding ListDataColumns ...}相同,这意味着它将查看设置为DataContext(父项)的任何对象对于名为ListDataColumns的属性。
  3. SelectedItem属性设置为{Binding Path=SelectedItem},与{Binding SelectedItem}相同,这意味着它将查看设置为DataContext(父项)的任何对象对于名为SelectedItem的属性。
  4. SelectedIndex属性设置为{Binding Path=SelectedItemIndex},与{Binding SelectedItemIndex}相同,这意味着它将查看设置为DataContext(父项)的任何对象对于名为SelectedItem的属性。
  5. 这就是您可以从XAML示例中获取的所有内容(忽略其他Binding属性)。但是,对于学习XAML和WPF的用户,以下是MSDN上一些非常有用的链接,以获取有关属性路径语法的帮助:

    Binding.Path Property

    PropertyPath XAML Syntax

    Property Path Syntax