[英]WPF Binding TextBlock value to display SelectedItem in ComboBox
我有一個ComboBox
和幾個TextBlock
字段。
我想顯示的屬性SelectedItem
從ComboBox
上的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.