私はXamarin.Formsアプリケーションを構築しています。Xamarin.FormsでUIコンポーネントが常に非公開になるのはなぜですか?
マイビュー:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="TestApp.Mobile.Views.MainView">
<Grid>
<Frame x:Name="TheFrame" />
</Grid>
</ContentPage>
が続いApp.csでは、私はTheFrame
にアクセスしたいです。このように:
MainView mainWindow = new MainView();
someFunction(mainWindow.TheFrame);
でも!これは、自動生成MainView.csがどのように見えるかです:
public partial class MainView : ContentPage {
private Frame MainFrame;
private void InitializeComponent() {
this.LoadFromXaml(typeof(MainView));
MainFrame = this.FindByName<Frame>("MainFrame");
}
}
WHY ?! App.csでTheFrame
にアクセスするにはどうすればよいですか?
他のクラスのUI要素に直接アクセスすることは、一般的にデザインが悪いことの兆候です。これを本当に行う必要がある場合は、ページ上のプライベート要素に必要なアクセスを提供するパブリックプロパティまたはメソッドを追加できます。 – Jason