2017-10-08 8 views
-1

사용자가 단추를 클릭 할 때 다른 창이 열리도록 명령을 쓰려고합니다. 내가 가진명령을 사용하여 창 열기 (WPF)

<Window.CommandBindings> 
    <CommandBinding 
     Command="ApplicationCommands.Open" 
     CanExecute="CanOpenWindow" 
     Executed="OpenWindow"> 
    </CommandBinding> 
</Window.CommandBindings 

및 코드에서

<Button 
    Content="Open Another Window" 
    Command="ApplicationCommands.Open" 
    CommandParameter="????"> 
</Button> 

: 내가 할 물음표를 대체 할 수있는 무엇을 알아낼 수 없습니다

Private Sub OpenWindow(sender As Object, e As ExecutedRoutedEventArgs) 
    Dim win As New Window 
    win = DirectCast(e.Parameter, Window) 
    win.Show() 
End Sub 

지금까지 나는 내 XAML이 있습니다 이 일.

추신 : 나는 "명예"라는 새로운 태그를 만들어야한다고 생각합니다.

+0

'Commanding'이 *** ... 명령 *** 당신이 문제를 봤나요? – Codexer

+0

@Codexer 예를 들어 "command"는 Visual Studio의 사용법에 고유 한 반면 "command"는 명령 창 (웹 쿼리시 가장 일반적으로 나타나는 결과)을 참조 할 수도 있습니다. 예, 저는 Google 교수와 상담했으며, 유용한 정보를 얻지 못하면이 게시물로 이어졌습니다. – SezMe

+0

그렇다면 왜 이벤트를 종료 할 수 없습니까? 또한 필요한 것을 달성하기위한 몇 가지 방법, 중개자, MVVM 등이 있습니다. – Codexer

답변

1

당신은 창 유형CommandParmeter 속성을 설정할 수 있습니다 :

<Button 
    Content="Open Another Window" 
    Command="ApplicationCommands.Open" 
    CommandParameter="{x:Type local:Window1}"> 
</Button> 

Private Sub OpenWindow(sender As Object, e As ExecutedRoutedEventArgs) 
    Dim type = DirectCast(e.Parameter, Type) 
    Dim win = DirectCast(Activator.CreateInstance(type), Window) 
    win.Show() 
End Sub 
+0

당신 (mm8)은 제가해야 할 일을 일관되게하고 있습니다 - 고마워요. – SezMe