C#XAML将Grid的实例传递给其他类

时间:2012-10-18 08:35:08

标签: c# xaml winrt-xaml

我有简单Grid Image名为TestImage,我需要将该Grid实例传递给其他类。另一个类将找到TestImage,它将更改Source

当我尝试从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 个答案:

答案 0 :(得分: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 = ...;
}