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
Sie verwenden könnten Um die wirkliche Ausnahme zu fangen - https://Stackoverflow.com/q/43556274/1155650 –