■ PageFunction<T> 클래스 사용하기

----------------------------------------------------------------------------------------------------

TestPageFunction.xaml

 

 

<PageFunction

    x:Class="DS.Test.WPF.TestPageFunction"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:s="clr-namespace:System;assembly=mscorlib"

    x:TypeArguments="s:String"

    Title="TestPageFunction">

 

...

 

</PageFunction>

 

 

TestPageFunction.xaml.cs

 

 

/// <summary>

/// 테스트 페이지 함수

/// </summary>

public partial class TestPageFunction : PageFunction<string>

{

    //////////////////////////////////////////////////////////////////////////////////////////////////// Field

    ////////////////////////////////////////////////////////////////////////////////////////// Private

 

    #region Field

 

    /// <summary>

    ///

    /// </summary>

    private string value;

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region 생성자 - TestPageFunction()

 

    /// <summary>

    /// 생성자

    /// </summary>

    public TestPageFunction()

    {

        InitializeComponent();

    }

 

    #endregion

 

    #region 생성자 - TestPageFunction(value)

 

    /// <summary>

    /// 생성자

    /// </summary>

    /// <param name="value"></param>

    public TestPageFunction(string value) : this()

    {

        this.value = value;

    }

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Method

    ////////////////////////////////////////////////////////////////////////////////////////// Private

 

    #region OK 버튼 클릭시 처리하기 - okButton_Click(sender, e)

 

    /// <summary>

    /// OK 버튼 클릭시 처리하기

    /// </summary>

    /// <param name="sender">이벤트 발생자</param>

    /// <param name="e">이벤트 인자</param>

    private void okButton_Click(object sender, RoutedEventArgs e)

    {

        OnReturn(new ReturnEventArgs<string>(this.value));

    }

 

    #endregion

 

    #region Cancel 버튼 클릭시 처리하기 - cancelButton_Click(sender, e)

 

    /// <summary>

    /// Cancel 버튼 클릭시 처리하기

    /// </summary>

    /// <param name="sender">이벤트 발생자</param>

    /// <param name="e">이벤트 인자</param>

    private void cancelButton_Click(object sender, RoutedEventArgs e)

    {

        OnReturn(new ReturnEventArgs<string>(null));

    }

 

    #endregion

}

 

 

CallTestPageFuncation.xaml

 

 

...

 

<Hyperlink

    Name="hyperlink"

    Click="hyperlink_Click">

    테스트 페이지 함수 호출

</Hyperlink>

 

...

 

 

CallTestPageFuncation.xaml.cs

 

 

...

 

#region 테스트 페이지 함수 리턴시 처리하기 - testPageFunction_Return(sender, e)

 

/// <summary>

/// 테스트 페이지 함수 리턴시 처리하기

/// </summary>

/// <param name="sender">이벤트 발생자</param>

/// <param name="e">이벤트 인자</param>

private void testPageFunction_Return(object sender, ReturnEventArgs<String> e)

{

    if(e.Result != null)

    {

        Console.WriteLine(e.Result);

    }

}

 

#endregion

 

#region 하이퍼링크 클릭시 처리하기 - hyperlink_Click(sender, e)

 

/// <summary>

/// 하이퍼링크 클릭시 처리하기

/// </summary>

/// <param name="sender">이벤트 발생자</param>

/// <param name="e">이벤트 인자</param>

private void hyperlink_Click(object sender, RoutedEventArgs e)

{

    TestPageFunction testPageFunction = new TestPageFunction("TestString");

 

    testPageFunction.Return += new ReturnEventHandler<string>(testPageFunction_Return);

 

    NavigationService.Navigate(testPageFunction);

}

 

#endregion

 

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG