繁体   English   中英

WPF 绑定 TextBlock 值以在 ComboBox 中显示 SelectedItem

[英]WPF Binding TextBlock value to display SelectedItem in ComboBox

我有一个ComboBox和几个TextBlock字段。

我想显示的属性SelectedItemComboBox上的Textblock's 图片

因此,当我选择多个用户之一时, TextBlock的属性将更新为SelectedItem的属性。 我找到了一个例子,虽然它使用的是 Silverlight,但并不完全有效。

        <ComboBox Grid.Row="0"
                  Grid.Column="0"
                  VerticalAlignment="Bottom"
                  VerticalContentAlignment="Center"
                  HorizontalContentAlignment="Left"
                  Margin="0"
                  Height="40"
                  Name="ComboBox" 
                  ItemsSource="{Binding UserModels}" 
                  SelectedItem="{Binding EnteredUserModel, Mode=TwoWay}">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding FirstName}"
                               Style="{StaticResource ResourceKey=ComboBoxItemTextBlock}"/>
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>
    </Grid>


        <TextBlock Grid.Row="1"
                   Grid.Column="0"
                   Margin="0 10 0 10" >
            <Run Text="{DynamicResource firstName}" />
            <Run Text=": " />
            <Run Text="{Binding ElementName=ComboBox, Path=SelectedItem, UpdateSourceTrigger=PropertyChanged}" />
        </TextBlock>

这是我试过的。 我将Name添加到ComboBox以便我可以在TextBlock访问它的SelectedItem 我需要获取 SelectedItem.firstname 等。在这个阶段我只能访问整个对象。

我错过了一些有用的绑定吗?

为了显示 SelectedItem 的FirstName属性,只需使用适当的属性路径,即SelectedItem.FirstName

<Run Text="{Binding ElementName=ComboBox, Path=SelectedItem.FirstName}" />

或者,由于SelectedItem绑定到您的视图模型中的EnteredUserModel属性:

<Run Text="{Binding Path=EnteredUserModel.FirstName}" />

不需要设置UpdateSourceTrigger=PropertyChanged 它在 OneWay 绑定中无效。

您将获得EnteredUserModel -Object,因为这是ComboBox的选定项目。 如果您想要显示的文本,您必须绑定到 FirstName-Property。

或者,您可以绑定到TextBox EnteredUserModel.FirstName

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM