簡體   English   中英

FindName返回null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM