2017-09-19 2 views
0

Ich versuche, zwei Etiketten mit dem Datum auf dem Klick des StackLayout zu binden. Das Stacklayout hat drei Elemente, ein Label zum Anzeigen des Datums, ein weiteres Label zum Anzeigen von Monat und Jahr, und das dritte Element ist ein Datepicker mit der Sichtbarkeit false.Xamarin Forms, die Verhalten auf StackLayout mit Prism anwenden

Mein XAML

<StackLayout> 
    <Label Text="End Date" Style="{StaticResource H2Style}" HorizontalOptions="Center"/> 
    <Label Text="26" HorizontalOptions="Center"/> 
    <Label Text="Mar 2017" HorizontalOptions="Center"/> 
    <DatePicker x:Name="endDatePicker" IsVisible="false" /> 
    <StackLayout.Behaviors> 
     <b:EventToCommandBehavior EventName="DateTapped" 
      Command="{Binding DatePickerCommand}" 
      CommandParameter= "{x:Reference endDatePicker}" /> 
    </StackLayout.Behaviors> 
</StackLayout> 

Ich mag den Dialog picker auf dem Klicken des stackLayout zeigen.

Mein Ansichtsmodell

public class MyViewModel : BindableBase 
{ 
    public DelegateCommand<Object> DatePickerCommand { get; set; } 
    public MyViewModel() 
    { 
     DatePickerCommand = new DelegateCommand<Object>(DateTapped); 

    } 

    private void DateTapped(Object obj) 
    { 
     Device.BeginInvokeOnMainThread(() => 
     { 
      if (endDatePicker.IsFocused) 
       endDatePicker.Unfocus(); 
      endDatePicker.Focus(); 
     }); 
    } 
} 

Aber ich bekomme die folgende Fehlermeldung:

Objective-C exception thrown. Name: NSInternalInconsistencyException 
Reason: Application windows are expected to have a root view 
controller at the end of application launch 
Native stack trace: 
0 CoreFoundation      0x0000000104b7bb0b __exceptionPreprocess + 171 
1 libobjc.A.dylib      0x000000010f757141 objc_exception_throw + 48 
2 CoreFoundation      0x0000000104b7fcf2 +[NSException raise:format:arguments:] + 98 
3 Foundation       0x0000000105732536 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 193 
4 UIKit        0x0000000109adac46 -[UIApplication _runWithMainScene:transitionContext:completion:] + 3343 
5 UIKit        0x0000000109ad77f3 -[UIApplication workspaceDidEndTransaction:] + 182 
6 FrontBoardServices     0x000000011246f5f6 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24 
7 FrontBoardServices     0x000000011246f46d -[FBSSerialQueue _performNext] + 186 
8 FrontBoardServices     0x000000011246f7f6 -[FBSSerialQueue _performNextFromRunLoopSource] + 45 
9 CoreFoundation      0x0000000104b21c01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
10 CoreFoundation      0x0000000104b070cf __CFRunLoopDoSources0 + 527 
11 CoreFoundation      0x0000000104b065ff __CFRunLoopRun + 911 
12 CoreFoundation      0x0000000104b06016 CFRunLoopRunSpecific + 406 
13 UIKit        0x0000000109ad608f -[UIApplication _run] + 468 
14 UIKit        0x0000000109adc134 UIApplicationMain + 159 
15 ???         0x00000001282fcd94 0x0 + 4969188756 
16 ???         0x00000001282fc9dd 0x0 + 4969187805 

ich schätzen, wenn jemand mir mit diesem

+1

Sie verwenden könnten Um die wirkliche Ausnahme zu fangen - https://Stackoverflow.com/q/43556274/1155650 –

Antwort

1

Das Problem helfen kann, könnte eine nicht behandelte Ausnahme sein irgendwo in einer der Threads. Vielleicht möchten Sie die echte Ausnahme fangen, indem Sie diesem - Forms with Prism: Application windows are expected to have a root VC

Anstatt zu versuchen, konzentrieren sich auf eine unsichtbare Kontrolle zu setzen, die meist ein unerwartetes Verhalten sein, warum nicht Datumsauswahl als Dialog von ACR User Dialogs for Xamarin and Windows

+1

Ihr Kommentar und Antwort hat mir geholfen, das Problem zu beheben. Ich habe es auf die gleiche Weise verlassen wie es jetzt ist (Datepicker versteckt). Überprüfen Sie, wie es funktioniert und würde eine geeignete Maßnahme ergreifen. Für alle anderen, die ähnliche Probleme haben, empfehle ich dringend, den Stack-Overflow-Link zu überprüfen, um zu erfahren, wie man den echten Fehler aufdeckt. In meinem Fall war es der Ereignisname, der Ereignisname sollte etwas sein, das das Steuerelement oder die Ansicht unterstützt. Ich habe Tag-Geste hinzugefügt und es funktioniert –

Verwandte Themen