图像绑定不起作用

时间:2013-04-10 02:58:39

标签: c# wpf windows-phone-7 xaml windows-phone-8

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

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

1 个答案:

答案 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}