首页 > 解决方案 > WPF,Caliburn.micro:如何在当前绑定上下文之外绑定属性?

问题描述

<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#wpfcaliburn.micro

解决方案


对于BindingWindow.DataContext属性,您可以使用以下方式进行操作RelativeSource

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

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

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

MyCollectionICollectionViewwith "/" 获取用于DefaultViewfor的当前项MyCollection阅读更多>>>


推荐阅读