일단 처음에 해야할것은
역시 HugeFlow dll 레퍼런스에 로드 하고 ViewModel에 을 상속받아서 쓴다.
일단 코드를 보자~
#region StartButtonCommand
/// <summary>
/// StartButton InstantCommand for ViewModel
/// </summary>
private ICommand _StartButtonCommand;
public ICommand StartButtonCommand
{
get
{
return _StartButtonCommand;
}
set
{
_StartButtonCommand = value;
OnPropertyChanged("StartButtonCommand");
}
}
public void StartButton(object param)
{
// code here
}
#endregion StartButtonCommand
code snipper를 이용하면 ic 를 입력하면 instantCommand를 이용할수 있다.
그리고 생성자에
public RandomNumberViewModel()
{
StartButtonCommand = new InstantCommand<object>(StartButton);
//StartRandomCommand = new InstantCommand<string>(StartRandom);
}
이렇게 넣어주면 땡~
xaml에서는
<phoneNavigation:PhoneApplicationPage
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phoneNavigation="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Navigation"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone.Shell"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:HugeFlow_CommandPattern_Interactivity="clr-namespace:HugeFlow.CommandPattern.Interactivity;assembly=HugeFlow.MVVM"
x:Class="RanDomNumber.MainPage"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="800"
x:Name="phoneApplicationPage"
DataContext="{Binding RandomNumberViewModel, Source={StaticResource ServiceLocator}}"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}">
<i:Interaction.Behaviors>
<HugeFlow_CommandPattern_Interactivity:ExecuteInstantCommandBehavior x:Name="StartButtonCommand" Command="{Binding StartButtonCommand}">
<i:Interaction.Triggers>
<i:EventTrigger SourceName="TestButton" EventName="Click">
<i:InvokeCommandAction CommandName="CommandTriggers"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</HugeFlow_CommandPattern_Interactivity:ExecuteInstantCommandBehavior>
</i:Interaction.Behaviors>
보면 알겟지만
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:HugeFlow_CommandPattern_Interactivity="clr-namespace:HugeFlow.CommandPattern.Interactivity;assembly=HugeFlow.MVVM"
를 추가하고
블랜드를 이용하여
<i:Interaction.Behaviors>
<HugeFlow_CommandPattern_Interactivity:ExecuteInstantCommandBehavior x:Name="StartButtonCommand" Command="{Binding StartButtonCommand}">
<i:Interaction.Triggers>
<i:EventTrigger SourceName="TestButton" EventName="Click">
<i:InvokeCommandAction CommandName="CommandTriggers"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</HugeFlow_CommandPattern_Interactivity:ExecuteInstantCommandBehavior>
</i:Interaction.Behaviors>
이 구문을 만들었다 블랜드를 이용해서 만드는 방법을 알아보자~
silverlight 4 rc 버전을 이용했다(정식버전은 아직 지원안됨 이것떄문에 지웠다 다시깜 ㅠㅠ)
그냥 간단하게 보자
위에서부터 Asset-ExucteInstantCommand-그리고 커맨드가 생기면 커맨드 클릭한후 event trriger 등록 하고 숨겨진창을
클릭하여 SourceName을 선택한후 마우스로 컨트롤을 선택하고 Command에 가서 icommand 가 있는 메소드를 선택하면 된다.
마지막으로 x:name 즉 이름 넣는곳에 알기 쉽게 아까 만든거와 같은 커맨드 네이밍을 입력하자
여기서는 StartButtonCommand~
'Windows Phone 7' 카테고리의 다른 글
[WP7] List 내용값 정렬하기(Custrom List Sorting) (0) | 2010.06.16 |
---|---|
[wp7] XmlSerializer 를 이용하여 xml 데이터를 만들어보자 (0) | 2010.06.15 |
[wp7] mvvm 쓰는법 정리 (0) | 2010.06.15 |
[wp7] Application Bar를 사용해보자. (0) | 2010.06.14 |
[wp7] Camel Case? Pascal Case? 네이밍 규칙? (0) | 2010.06.14 |