【问题标题】:XAML bind SelectedItem to a DataContext.listbox referenceXAML 将 SelectedItem 绑定到 DataContext.listbox 引用
【发布时间】:2016-09-09 06:26:10
【问题描述】:

我遇到了一个问题: 我有一个PopUp 窗口,它的DataContext 指向一个对象,该对象包含对ListBox (reftolistbox) 的引用。

我设法使用此代码隐藏代码创建了一个有效的绑定:

private void ID_Loaded(object sender, RoutedEventArgs e)
    {
        Binding myBinding = new Binding("id");
        myBinding.Source = ((myclass)DataContext).reftolistbox;
        myBinding.Path = new System.Windows.PropertyPath("SelectedItem.Name");
        BindingOperations.SetBinding(ID, ComboBox.TextProperty, myBinding);
    }

我想用 XAML 解决方案替换上面的代码, 这是我尝试过但没有人工作的列表。

<Combobox ...
     Text="{Binding Source=DataContext.reftolistbox, Path=SelectedItem.Name }"  
     Text="{Binding reftolistbox.SelectedItem.Name }"  
     Text="{Binding Path=DataContext.reftolistbox.SelectedItem.Name}"

需要 XAML 解决方案,我做错了什么?

【问题讨论】:

  • 你试过了吗:Text="{Binding ElementName=reftolistbox, Path=SelectedItem.Name }"
  • 我试过了,不行
  • 我们可以有完整的 xaml 吗?主要用于ComboBox和ListBox
  • 啊,好点,它现在可以工作了!,在我的 DataContext 类中。 reftolistbox 是公共字段而不是属性,因此我可以在代码隐藏中设置绑定,但不能在 xaml 中设置绑定

标签: wpf xaml binding xaml-binding


【解决方案1】:

XAML 只绑定到属性

DataContext:
              { public ListBox reftolistbox { get; set; } }

working binding in XAML:
              Text="{Binding reftolistbox.SelectedItem.Name }"  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 2014-10-10
    • 2019-12-05
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多