2012-11-27 98 views
1

我正在开发一个使用C#和XAML的应用程序,并且遇到了令我困惑的问题。我在我的数据中有一个属性,名为GroupImage,并使用绑定将它设置为Source属性Image。这工作得很好,但当我想再次做同样的事情时,它不会在第二个控制中显示图像。Windows 8数据绑定

<Image Source="{Binding Group.GroupImage}" Width="250" Height="500" Stretch="UniformToFill" /> 

<Image VerticalAlignment="Bottom" Stretch="UniformToFill" Source="{Binding Group.GroupImage}" Grid.RowSpan="2"/> 

顶部的一个很好,但底部没有。我一直在阅读关于数据绑定的知识,并得到了一个印象,您需要指定DataContext中的某些内容来多次使用属性。这是正确的吗?这似乎是一个很奇怪的做法。

我对C#比较陌生,所以对不起,如果我失去了明显的东西。我会很感激知识更渊博的对着我诉说什么英寸

感谢

更新继我想通了,上下文是被设定为

DataContext="{Binding Group}" 

而作为一个结果,我收到了我的援助由于数据上下文已被设置为组,因此第二行需要更改为以下内容。

<Image VerticalAlignment="Bottom" Stretch="UniformToFill" Source="{Binding GroupImage}" Grid.RowSpan="2"/> 
+0

应该有什么不妥多个控件绑定到同一个'DataContext'财产。你确定这两个图像具有相同的'DataContext'? – khellang

+0

'VerticalAlignment ='Bottom''可以让'Image'有一个ActualHeight为0吗?你有没有尝试给第二个'图像'特定的尺寸? – Lukazoid

+0

当你说“它不会让我”时,你是什么意思?编译器错误?例外?任何绑定错误?发布您看到的错误。 – TarkaDaal

回答

1

你并不需要指定在DataContext东西使用属性不止一次。但是您的两个Image必须具有合适的DataContext(您可以使用调试器轻松测试),具体取决于它们在可视化树上的位置(您没有提供DataContext部件的任何代码?)。

你也可以检查你的ImageWidth/Height不为0

+0

是的,当我检查调试器时,数据上下文已经被设置在一个我并不期待的地方。感谢您的帮助和耐心与新手。 – MillyMonster