MVVM Işık kitaplığını kullanıyorum. Bu kütüphaneden, T
türünde bir argümanı olan komutları tanımlamak için RelayCommand<T>
kullanıyorum.Nullable <Boolean> değerini CommandParameter'a nasıl geçiririm?
private RelayCommand<bool?> _cmdSomeCommand;
public RelayCommand<bool?> CmdSomeCommand
{
get
{
if (_cmdSomeCommand == null)
{ _cmdSomeCommand = new RelayCommand<bool?>(new Action<bool?>((val) => { /* do work */ })); }
return _cmdSomeCommand;
}
}
nasıl XAML kodundan CommandParameter atayabilirsiniz:
Şimdi tipNullable<bool>
bir argüman gerektiren bir RelayCommand
tanımladık?
Ben bir boolean değer geçmek denedim, ama bu şu duruma neden olur
:
System.InvalidCastException: 'System.Boolean' dan geçersiz döküm System.Nullable`1 [' için [System.Boolean, mscorlib, Sürüm = 4.0.0.0, Kültür = tarafsız, PublicKeyToken = b77a5c561934e089]] '.
Boole içeren statik özellikleri tanımlamayı denedim mi? değerler ve XAML bunlara başvuruda:
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}" />
Ama bu atılmasına aynı duruma neden olur. Ayrıca, new Nullable<bool>(true)
'u döndürmeyi denedim, ancak beklendiği gibi, bu aynı sonucu veriyor.
Bunu gördünüz mü? http://stackoverflow.com/questions/2850629/declare-a-nullable-int-int-using-xaml – tolanj