none
Silverlight에서 Prism4 MVVM RRS feed

답변


  • 안녕하십니까? 김도남 님

    Microsoft MSDN Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “Silverlight에서 Prism4 MVVM”에 대한 답변을 드리겠습니다.

     

    Step 1 : View, ViewModel

     

    View1 Class DataContext를 이용해서 ViewModel과 통신을 합니다.

     

    View1Model.CS

     

    View = new View1();

    //DataContext Viw1Model Instance 바인딩합니다.

    View.DataContext = this;

     

     

     

    private ObservableCollection<User> _dataGridViewSource;

    public ObservableCollection<User> DataGridViewSource

    {

        get { return _dataGridViewSource; }

        set 

        {

            if (_dataGridViewSource != value)

            {

                _dataGridViewSource = value;

                //속성이 변경이 되면 Control 이벤트를 전달을 합니다.

                RaisePropertyChanged(() => this.DataGridViewSource);

            }                

        }

    }

     

    private DelegateCommand _showCommand;

    public DelegateCommand ShowCommand

    {

        get { return _showCommand; }

        set

        {

            if (_showCommand != value)

            {

                _showCommand = value;

                RaisePropertyChanged(() => this.ShowCommand);

            }

        }

    }

     

     

    View1.XAML

     

    <!--ItemsSource View1Model DataGridViewSource 사용해서 DataGrid Data 전달을 합니다.-->

    <sdk:DataGrid ItemsSource="{Binding Path=DataGridViewSource}"                          

                  SelectedItem="{Binding Path=SelectedUser, Mode=TwoWay}">

     

     

    Model Diagram

     

     

    Step 2 : Command

     

    View1Model.CS

     

    //인자에 이벤트 핸들러를 설정을 해서 Click Event 발생하면 DataGrid 선택된 행을 표시합니다.

    ShowCommand = new DelegateCommand(delegate()

        {

            ExecuteOnUIThread(delegate()

            {

                MessageBox.Show(string.Format("{0} is selected", SelectedUser.Name));

            });

        });

     

     

    View1.XAML

    <!--Command 속성에 View1Model ShowCommand 속성을 Binding해서 Event Handler 등록을 합니다.-->

    <Button Content="Show Selected Row"                    

            Command="{Binding Path=ShowCommand}"

            Width="80"

            Height="30"

            />

     

     

    Step 3 : 확인

     

     

     

     

     

    Solution Explorer

     

     

     

     

    참고 자료

     

    Prism

    http://compositewpf.codeplex.com

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 표시됨 김도남 2011년 12월 15일 목요일 오전 9:34
    2011년 12월 13일 화요일 오전 9:17
    중재자