0

我在将后端绑定到前端图像时遇到了一些麻烦。图像是动态的。这是服务于前端的后端代码:

    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 代码中

4

1 回答 1

0

绑定失败的原因是,默认情况下,绑定到DataContext属性中保存的实例。所以,绑定

{Binding currentCardImage}

实际上意味着

this.DataContext.currentCardImage

既然您说该属性在codebehind中,我假设您的代码如下所示:

public sealed class MyClass : Window
{
    public string currentCardImage
    {
        get { // SNIP!

为了绑定到此属性,您必须重定向绑定以查找 xaml 树(您的窗口)的根以开始查找指定路径。

最简单的方法是命名你的根元素

<Window x:Class="HerpDerp"
        HideOtherAttributesBecauseThisIsAnExample="true"
        x:Name="thisIsTheBindingTarget">
    <!-- snip -->

并告诉你的绑定看那里

{Binding currentCardImage, ElementName=thisIsTheBindingTarget}
于 2013-04-10T14:45:04.750 回答