【问题标题】:WPF, Caliburn.micro : How to bind property outside of current binding context?WPF,Caliburn.micro:如何在当前绑定上下文之外绑定属性?
【发布时间】:2020-06-20 11:42:24
【问题描述】:
<DataTemplate>
<StackPanel Orientation="Vertical">
    <TextBlock Text="{Binding Key}"></TextBlock>
    <ComboBox ItemsSource="{Binding Value}" SelectedItem="{Binging SomeProperty}">
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Name}"></TextBlock>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>
</StackPanel>

我在 Dictionary 内部,我想绑定 SelectedItem="{Binging SomeProperty}" SomeProperty 是 ViweModel 的属性,而不是 Dictionary 内部。怎么做?如何绑定到当前绑定上下文之外的属性。

【问题讨论】:

    标签: c# wpf caliburn.micro


    【解决方案1】:

    如果是BindingWindow.DataContext 的属性,你可以用RelativeSource 做如下方式:

    <ComboBox ItemsSource="{Binding Value}" SelectedItem="{Binding DataContext.SomeProperty, RelativeSource={RelativeSource AncestorType=Window}}">
    

    或者如果您想在某些TextBox 中显示SelectedItem(例如string 的集合):

    <TextBox Text="{Binding MyCollection/}"/>
    <ComboBox ItemsSource="{Binding MyCollection}" IsSynchronizedWithCurrentItem="True">
    

    MyCollection with "/" 获取ICollectionView 的当前项,用作DefaultViewMyCollectionRead more >>>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-31
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 2011-12-01
      • 2010-10-20
      • 2011-05-26
      相关资源
      最近更新 更多