{"id":57996,"date":"2023-01-29T09:01:42","date_gmt":"2023-01-29T08:01:42","guid":{"rendered":"https:\/\/ar3dp.de\/docs\/programmieren\/net-maui-basis-applikation-app-template\/3-views\/"},"modified":"2023-01-29T09:01:42","modified_gmt":"2023-01-29T08:01:42","slug":"views","status":"publish","type":"docs","link":"https:\/\/ar3dp.de\/en\/docs\/programmieren\/net-maui-basis-applikation-app-template\/views\/","title":{"rendered":"Views"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Die <code>Views<\/code> sind die visuelle Komponente der App und zeigen die Daten aus dem gebundenen <code>ViewModel<\/code> an. Der <code>Ctor<\/code> der Inhaltsseite muss als Parameter das <code>ViewModel<\/code> akzeptieren, wie das folgende Beispiel zeigt.<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;clike&quot;,&quot;mime&quot;:&quot;text\/x-csharp&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;C#&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;csharp&quot;}\">public partial class DashboardPage : ContentPage\n{\n    public DashboardPage(DashboardPageViewModel viewModel)\n    {\n        InitializeComponent();\n        BindingContext = viewModel;\n        Loaded += ((DashboardPageViewModel)BindingContext).Pages_Loaded;\n    }\n\n    ~DashboardPage()\n    {\n        Loaded -= ((DashboardPageViewModel)BindingContext).Pages_Loaded;\n    }\n\n    #region Methods\n    protected override void OnAppearing()\n    {\n        base.OnAppearing();\n        try\n        {\n            ((DashboardPageViewModel)BindingContext).OnAppearing();\n        }\n        catch (Exception) { }\n    }\n\n    protected override void OnDisappearing()\n    {\n        base.OnDisappearing();\n        try\n        {\n            ((DashboardPageViewModel)BindingContext).OnDisappearing();\n        }\n        catch (Exception) { }\n    }\n    #endregion\n}<\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Somit weis die <code>View<\/code>, welches <code>ViewModel<\/code> sich dahinter verbirgt. Zus\u00e4tzlich sollte auch in der Xaml-Ansicht auf das richtige <code>ViewModel<\/code> verwiesen werden.<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;xml&quot;,&quot;mime&quot;:&quot;application\/xml&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:false,&quot;styleActiveLine&quot;:false,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;XML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;xml&quot;}\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;\n&lt;ContentPage\n    xmlns=&quot;http:\/\/schemas.microsoft.com\/dotnet\/2021\/maui&quot;\n    xmlns:x=&quot;http:\/\/schemas.microsoft.com\/winfx\/2009\/xaml&quot;\n    x:Class=&quot;AppBasement.Views.DashboardPage&quot;\n       \n    xmlns:localization=&quot;clr-namespace:AppBasement.Resources.Localization&quot;\n    xmlns:viewModels=&quot;clr-namespace:AppBasement.ViewModels&quot;\n    \n    Title=&quot;{x:Static localization:Strings.Dashboard}&quot;\n    Style=&quot;{StaticResource DefaultPageStyle}&quot;\n    x:DataType=&quot;viewModels:DashboardPageViewModel&quot;\n    &gt;\n    &lt;!-- Some content --&gt;\n&lt;\/ContentPage&gt;<\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Dies hat den Vorteil, dass schon beim Erstellen des Projektes gepr\u00fcft wird, ob die <code>Bindings<\/code> der <code>View<\/code> auch im  <code>ViewModel<\/code> verf\u00fcgbar sind. Das erleichtert das sp\u00e4tere Fehlersuchen und verbessert die Performance der App.<\/p>","protected":false},"excerpt":{"rendered":"<p>Die Views sind die visuelle Komponente der App und zeigen die Daten aus dem gebundenen ViewModel an. Der Ctor der Inhaltsseite muss als Parameter das ViewModel akzeptieren, wie das folgende Beispiel zeigt. Somit weis die View, welches ViewModel sich dahinter verbirgt. Zus\u00e4tzlich sollte auch in der Xaml-Ansicht auf das richtige ViewModel verwiesen werden. Dies hat&#8230;<\/p>","protected":false},"author":1,"featured_media":0,"parent":57992,"menu_order":6,"comment_status":"open","ping_status":"closed","template":"","meta":{"_featured":false,"_is_vendor_doc":"0","footnotes":""},"doc_tag":[],"class_list":["post-57996","docs","type-docs","status-publish","hentry"],"comment_count":0,"_links":{"self":[{"href":"https:\/\/ar3dp.de\/en\/wp-json\/wp\/v2\/docs\/57996","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ar3dp.de\/en\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/ar3dp.de\/en\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/ar3dp.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ar3dp.de\/en\/wp-json\/wp\/v2\/comments?post=57996"}],"version-history":[{"count":2,"href":"https:\/\/ar3dp.de\/en\/wp-json\/wp\/v2\/docs\/57996\/revisions"}],"predecessor-version":[{"id":58744,"href":"https:\/\/ar3dp.de\/en\/wp-json\/wp\/v2\/docs\/57996\/revisions\/58744"}],"up":[{"embeddable":true,"href":"https:\/\/ar3dp.de\/en\/wp-json\/wp\/v2\/docs\/57992"}],"next":[{"title":"Utilities & Helfer","link":"https:\/\/ar3dp.de\/en\/docs\/programmieren\/net-maui-basis-applikation-app-template\/utilities-helfer\/","href":"https:\/\/ar3dp.de\/en\/wp-json\/wp\/v2\/docs\/58001"}],"prev":[{"title":"ViewModels","link":"https:\/\/ar3dp.de\/en\/docs\/programmieren\/net-maui-basis-applikation-app-template\/viewmodels\/","href":"https:\/\/ar3dp.de\/en\/wp-json\/wp\/v2\/docs\/57995"}],"wp:attachment":[{"href":"https:\/\/ar3dp.de\/en\/wp-json\/wp\/v2\/media?parent=57996"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/ar3dp.de\/en\/wp-json\/wp\/v2\/doc_tag?post=57996"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}