我在将后端绑定到前端图像时遇到了一些麻烦。图像是动态的。以下是为前端提供服务的后端代码:
public string currentCardImage
{
get
{
return currentCard.imageSource;
}
}
和前端XAML是:
<Image Name="ImageMain"
Source="{Binding currentCardImage}"
HorizontalAlignment="Left"
Height="100"
Margin="368,529,0,0"
Grid.Row="1"
VerticalAlignment="Top"
Width="100"
RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<CompositeTransform Rotation="90.203" />
</Image.RenderTransform>
</Image>
不幸的是,这不起作用。我可以验证是否有数据加载到currentCard中,因此imageSource返回图像的位置。
如果您需要更多信息,请与我们联系。非常感谢任何帮助!
编辑:c#代码位于
后面的XAML代码中答案 0 :(得分:0)
绑定失败的原因是默认情况下,绑定是DataContext
属性中保存的实例。所以,绑定
{Binding currentCardImage}
实际上意味着
this.DataContext.currentCardImage
由于您说该属性位于 codebehind 中,我假设您的代码如下所示:
public sealed class MyClass : Window
{
public string currentCardImage
{
get { // SNIP!
为了绑定到此属性,您必须重定向绑定以查找xaml树的根(您的Window)以开始查找指定的路径。
最简单的方法是命名根元素
<Window x:Class="HerpDerp"
HideOtherAttributesBecauseThisIsAnExample="true"
x:Name="thisIsTheBindingTarget">
<!-- snip -->
告诉你的Binding看那里
{Binding currentCardImage, ElementName=thisIsTheBindingTarget}