【发布时间】:2020-05-07 03:08:10
【问题描述】:
我知道,“强烈建议使用 MVVM”,但我只是想了解和学习 xamarin.forms 结构。所以这是一个问题: 我的应用程序基于 TabbedPage,它由两个 NavigationPage 组成:
<TabbedPage.Children >
<NavigationPage Title="Search">
<NavigationPage.Icon>
<OnPlatform x:TypeArguments="FileImageSource">
<On Platform="iOS" Value="tab_feed.png"/>
</OnPlatform>
</NavigationPage.Icon>
<x:Arguments>
<views:SearchPage />
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Study">
<NavigationPage.Icon>
<OnPlatform x:TypeArguments="FileImageSource">
<On Platform="iOS" Value="tab_about.png"/>
</OnPlatform>
</NavigationPage.Icon>
<x:Arguments> <!---->
<views:AboutPage />
</x:Arguments>
</NavigationPage>
</TabbedPage.Children>
我正在尝试从在不同的类/视图模型中创建的方法调用此标签页的子页面以访问 SearchBar 文本:
public async void AddToList()
{
var mp = (MainPage)App.Current.MainPage;
var sp = (SearchPage)mp.Children[0]; /// exception related with casting is thrown.
var Word = sp.WordSearchBar.Text;
...
}
SearchPage 定义如下。所以我创建铸造异常的问题是什么。以及如何访问 searcbar 文本(绑定和 MVVM 除外)
public partial class SearchPage : ContentPage
{....}
【问题讨论】:
标签: c# xamarin.forms casting tabbedpage