пятница, 12 ноября 2010 г.

CommandParameter: Передачи нескольких аргументов

Сумел передать в CommandParameter несколько аргументов:


Для передачи нескольких аргументов во ViewModel с помощью CommandParameter можно воспользоваться x:Array Type="{x:Type sys:Object}">.


Код XAML:
HorizontalAlignment="Center"
>




Checkedlocal:CheckBoxComandType>
Основной инструментlocal:ReferenceBookType>
x:Array>
jm:CommandEvent.CommandParameter>
jm:CommandEvent>
jm:EventCommander.Mappings>
CheckBox>


Код во ViewModel С#:

private DelegateCommand m_CmdCheckChanged;


public ICommand CmdCheckChanged
{
get { return m_CmdCheckChanged ?? (m_CmdCheckChanged = new DelegateCommand(CmdCheckChanged_Executed, CmdCheckChanged_CanExecute)); }
}


private void CmdCheckChanged_Executed(object args)
{
if (!((args is JulMar.Windows.Behaviors.EventParameters))) return;

JulMar.Windows.Behaviors.EventParameters Params = args as JulMar.Windows.Behaviors.EventParameters;
if (!(Params.CommandParameter is object[])) return;
object[] myObjArray = Params.CommandParameter as object[];

if (myObjArray.Count() != 2) return;

if (!(myObjArray[0] is CheckBoxComandType)) return;
CheckBoxComandType checkType = (CheckBoxComandType)myObjArray[0];

if (!(myObjArray[1] is ReferenceBookType)) return;
ReferenceBookType refbookType = (ReferenceBookType)myObjArray[1];
}



Комментариев нет: