2013-04-10 77 views
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> 

可惜,這是行不通的。我可以驗證是否有數據加載到當前卡中,因此imageSource返回圖像的位置。

如果您需要更多信息,請讓我知道。任何幫助是極大的讚賞!

編輯:C#代碼是在背後

+0

你分配一個DataContext到View?否則,即使代碼位於CodeBehind文件 – Jehof 2013-04-10 07:10:58

+1

中,您是否實現了INotifyPropertyChanged,綁定也不起作用? – xiriusly 2013-04-10 08:00:11

+0

您的圖像構建操作在解決方案中設置爲資源?如果是,請嘗試使用以下內容:pack:// application:,,,/Images/yourImage.png其中Images是解決方案中圖像所在的文件夾 – 2013-04-10 13:13:05

回答

0

爲什麼你的綁定失敗是綁定的,默認情況下,在DataContext物業內舉行的實例的原因XAML代碼。因此,結合

{Binding currentCardImage} 

實際上意味着

this.DataContext.currentCardImage 

既然你說的屬性在代碼隱藏,我假設你的代碼看起來是這樣的:

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

爲了綁定到這個屬性,你必須重定向綁定到xaml樹的根目錄(你r Window)開始查找指定的路徑。

做到這一點,最簡單的方法是命名您的根元素

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

,並告訴您綁定到那裏尋找

{Binding currentCardImage, ElementName=thisIsTheBindingTarget}