WPF-图像的双向绑定
我有一个在一页上工作的双向绑定。我将通过包含声明代码(不完整)来说明数据是如何到达那里的 所以我在这个窗口中没有资源,即窗口资源 我的形象如下:WPF-图像的双向绑定,wpf,mvvm,Wpf,Mvvm,我有一个在一页上工作的双向绑定。我将通过包含声明代码(不完整)来说明数据是如何到达那里的 所以我在这个窗口中没有资源,即窗口资源 我的形象如下: <Image x:Name="myImage" Source="{Binding Path=myImage}"/> 这显示了图像,但我无法使用绑定在编辑时更改图像。 如果我尝试: <Image x:Name="myImg" Source="{Binding Path=myImage, Mode=T
<Image x:Name="myImage"
Source="{Binding Path=myImage}"/>
这显示了图像,但我无法使用绑定在编辑时更改图像。
如果我尝试:
<Image x:Name="myImg"
Source="{Binding Path=myImage, Mode=TwoWay}"/>
绑定根本不起作用。。。没有显示图像。
因此,我尝试通过以下方式在Datacontext中指定双向:
<Image x:Name="myImg"
DataContext="{Binding myImage, RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Window}}, TwoWay}"
Source="{Binding Path=myImage}"/>
我试着用这个来复制一个有效的方法。这也完全不绑定,即不显示图像
所以我有三个问题
谢谢您的期待。您的代码问题在于视图模型中您没有任何属性
myImage
,您已在新窗口中将图像
绑定到该属性。因此,为了使绑定工作正常,请在viewmodel
上创建一个属性,如SelectedItem
,该属性属于itemslist
中的项目类型,并将listview
绑定到它,如下所示:
<ListView x:Name="mylvw"
DataContext="{StaticResource ResourceKey=myList}"
ItemsSource="{Binding Path=myItems}"
SelectedItem = "{Binding SelectedItem}"
因此,我设法通过更改问题页面上的图像绑定来解决这个问题,并保留我原来的设置
<Image
DataContext="{Binding DataContext, ElementName=myPage, Mode=TwoWay}"
Source="{Binding Path=myModel.myImage}" />
这给了我想要的双向绑定。如果我没有弄错的话,在这种情况下,对大型
图像使用TwoWay
模式可能是性能问题。
<ListView x:Name="mylvw"
DataContext="{StaticResource ResourceKey=myList}"
ItemsSource="{Binding Path=myItems}"
SelectedItem = "{Binding SelectedItem}"
<Image x:Name="myImage"
Source="{Binding Path=SelectedItem.myImage}"/>
<Image
DataContext="{Binding DataContext, ElementName=myPage, Mode=TwoWay}"
Source="{Binding Path=myModel.myImage}" />