簡體   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