我有一个ComboBox
,如下所示。我想要的是将SelectedItem
值绑定到Text
的{{1}}属性,以便另一个DataContext
可以显示DataTemplate
。请注意,Image
和目标ComboBox
元素位于两个不同的Image
上,因此我需要更新DataTemplate
Text
属性(ImageName)在后端。
DataContext
答案 0 :(得分:0)
您可以将每个项目设置为具有特定的数据上下文。
我不确定你的xaml你试图设置哪个项目,我认为这是最后一行
<Image Source="{Binding Path=Image' ... />
您只需指定该控件的数据上下文即可。
编辑回复评论
由于您试图从组合框中获取所选项目并尝试将其发送到图像,为什么不将其作为值传递到保存图像的类中。
我认为你可以在xaml中做到这一点,但我不完全确定如何做到这一点。
答案 1 :(得分:0)
看起来你正试图做这样的事情:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<DockPanel>
<TextBox DockPanel.Dock="Top" x:Name="Source">x1</TextBox>
<ComboBox DockPanel.Dock="Top" x:Name="myComboBox"
SelectedValue="{Binding ElementName=Source, Path=Text, Mode=TwoWay}">
<sys:String>1</sys:String>
<sys:String>22</sys:String>
<sys:String>333</sys:String>
<sys:String>4444</sys:String>
</ComboBox>
<TextBlock DockPanel.Dock="Top"
Text="{Binding ElementName=myComboBox, Mode=OneWay, Path=SelectedItem.Length}"/>
</DockPanel>
</Page>
使用双向绑定将ComboBox
绑定到TextBox
的文本,因此当您从ComboBox
中选择一个项目时,它会更新TextBox
,并且当您在TextBox
列表中的ComboBox
中键入值时,它会更改ComboBox
中的所选项。
TextBlock
绑定到ComboBox
中所选项目的属性。每当所选项目发生更改时,无论是因为用户选择了新项目还是更改了TextBox
中的值,都会更新TextBlock
。
但是我对所有关于数据上下文的讨论感到困惑。您发布的示例中的所有对象都没有数据上下文。