[英]FindName returns null
我正在嘗試從另一個C#類獲取具有自己名稱的XAML元素,但它始終返回null,為什么?
這是目標XAML及其C#類:
XAML:
<Page
x:Class="myApp.SubSpace.SomePage"
IsTabStop="false"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:myApp.SubSpace"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid x:Name="target">
</Grid>
</Page>
C#:
using Windows.Foundation;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace myApp.SubSpace
{
public sealed partial class SomePage : Page
{
public SomePage()
{
InitializeComponent();
}
}
}
這是給我空結果的代碼:
using myApp.SubSpace;
using Windows.Foundation;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace myApp.Core
{
public class Main
{
private Grid target;
public Main() {
FrameworkElement page = new SomePage();
this.target = (Grid)page.FindName("target");
}
}
}
該代碼非常簡化,但是非常重要的事情在那里。 調用新的Main
對象后,其target
字段為null。 怎么了?
提前致謝!
我有一個基於C#Metro開發人員技巧和竅門中代碼段的輔助靜態類:如何通過其名稱查找XAML控件 。 它還沒有讓我失望。
Grid myGrid=
this.FindName("target") as Grid;
我意識到在OP的代碼中不是這種情況,但是我遇到了同樣的錯誤(從FindChild返回null),對我來說,這是在調用InitializeComponent()之前在Page的構造函數中調用FindChild的問題。 在看孩子之前,請確保所有內容都已初始化並准備就緒。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.