2012-10-18 45 views
0

我有簡單的GridImage命名爲TestImage,我需要將該網格實例傳遞給其他類。其他班級將會發現TestImage,它將改變SourceC#XAML將網格實例傳遞給其他類

當我嘗試從XAML的代碼隱藏訪問Grid時,它是可以的,但是當我嘗試將Grid的實例傳遞給其他類時,我無法訪問TestImage。

TestPage.xaml.cs

var otherClass = new OtherClass(); 
otherClass.DoSomeStuff(this.GridName); 

OtherClass.cs

public void DomeSomeStuff(Grid gridInstance) 
{ 
    gridInstance.TestImage.Source = ....; 
} 

我會得到錯誤信息:

「Windows.UI.Xaml。 Controls.Grid'不包含的定義「TestImage」,沒有擴展方法「TestImage」接受型的第一 參數「Windows.UI.Xaml.Controls.Grid」可以發現

我明白了這個錯誤,但我不知道,怎麼要解決這個問題。

你能幫助我嗎? 謝謝。

回答

1

試試這個:

public void DomeSomeStuff(Grid gridInstance) 
{ 
    var image = VisualTreeHelper.GetChild(gridInstance, 0) as Image; 
    // or var image = gridInstance.Children[0] as Image; 
    // or var image = gridInstance.FindName("TestImage") as Image; 
    if (image != null) 
     image.Source = ...; 
} 
+0

,是有辦法如何通過名稱找到兒童(X:名稱),不被孩子索引? –

+0

@Martin Pernica,是的,我編輯了我的答案。 – 2kay

+0

不錯,謝謝! –