ListBox集合之外的绑定属性[重复]

Posted

技术标签:

【中文标题】ListBox集合之外的绑定属性[重复]【英文标题】:Binding properties outside ListBox collection [duplicate] 【发布时间】:2018-02-22 21:41:03 【问题描述】:

如果我有一个ListBox 并且它绑定到MyObject.MyCollection,我怎样才能获得MyObject.MyValue

<ListBox ItemsSource="Binding Path=MyObject.MyCollection">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <StackPanel>
        <TextBlock Text="Binding Path=Name"/>
        <TextBlock Text="Binding Path=MyObject.MyValue"/>
      </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

public class MyObject 
   public ObservableCollection<CollectionThing> MyCollection get; set;
   public string MyValue get; set;

【问题讨论】:

【参考方案1】:

我认为你可以在绑定中使用相对源

<ListBox ItemsSource="Binding Path=MyObject.MyCollection">
    <ListBox.ItemTemplate>
        <DataTemplate>
             <StackPanel>
                 <TextBlock Text="Binding Path=Name"/>
                 <TextBlock Text="Binding Path=DataContext.MyObject.MyValue,
                                   RelativeSource=RelativeSource AncestorType=ListBox"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

【讨论】:

以上是关于ListBox集合之外的绑定属性[重复]的主要内容,如果未能解决你的问题,请参考以下文章

WPF中的ListBox,ListView和DataGridView有啥区别

更改 Button.Click 上的 ListBox.ItemsSource 绑定属性?

wpf画面ListBox绑定的数据发生变化时 画面闪烁

WPF中ListBox的绑定

winform中的ListBox和ComboBox绑定数据用法实例

WPF多源绑定