Ich verwende die MVVM Light-Bibliothek. Aus dieser Bibliothek verwende ich RelayCommand<T>
, um Befehle mit einem Argument vom Typ T
zu definieren.Wie übergebe ich Nullable <Boolean> Wert an CommandParameter?
Jetzt habe ich eine RelayCommand
definiert, die ein Argument vom Typ erfordert Nullable<bool>
:
Wie kann ich ordnen Sie die Commandparameter aus meiner XAML-Code
private RelayCommand<bool?> _cmdSomeCommand;
public RelayCommand<bool?> CmdSomeCommand
{
get
{
if (_cmdSomeCommand == null)
{ _cmdSomeCommand = new RelayCommand<bool?>(new Action<bool?>((val) => { /* do work */ })); }
return _cmdSomeCommand;
}
}
?
Ich habe versucht, einen Booleschen Wert zu übergeben, aber das bewirkt, dass die folgende Ausnahme:
System.InvalidCastException: Ungültige Umwandlung von 'System.Boolean' auf ‚System.Nullable`1 [ [System.Boolean, mscorlib, Version = 4.0.0.0, Kultur = neutral, PublicKeyToken = b77a5c561934e089]] '.
Ich habe auch versucht, statische Eigenschaften zu definieren, die das Bool enthalten? sie von XAML-Werte und Referenz:
public static class BooleanHelper
{
public static bool True { get { return true; } }
public static bool False { get { return false; } }
public static bool? NullableTrue { get { return true; } }
public static bool? NullableFalse { get { return false; } }
}
XAML:
<Button Command="{Binding CmdSomeCommand}" CommandParameter="{x:Static my:BooleanHelper.NullableTrue}" />
Aber dies bewirkt, dass die gleiche Ausnahme ausgelöst werden. Ich habe auch versucht, new Nullable<bool>(true)
zurückgeben, aber wie erwartet, hat dies das gleiche Ergebnis.
Haben Sie das gesehen? http://stackoverflow.com/questions/2850629/declare-a-nullable-int-int-using-xaml – tolanj