다른 화면 표시 방법

4456 단어 WPF

개시하다


WPF에서 공부하는 중이기 때문에 자신의 위에 써야 한다.
잘못되고 부족한 점이 있으면 메시지를 남겨주세요.

● 추가 화면 표시 방법


ViewModel에서 View를 열려면 Messenger를 보내면 됩니다.
Livet.Behaviors.메사징 네임스페이스에는 라이브의 메신저 등으로부터 메시지를 받을 수 있는 액션이 준비돼 있다.이 액션은 메신저뿐만 아니라 이벤트트리거 등에서도 액션을 시작할 수 있다.
※ 인용원: https://github.com/runceel/Livet

뷰 측 소스


InteractionMessageTrigger를 설정하여 Action을 지정합니다.
Tran s i t i o n InteractionMessageAction을 통해 다른 화면을 시작합니다.
Mode(화면 표시 방법)
정규: 다른 화면을 표시할 때 다른 화면을 조작할 수 있다
Modal: 다른 화면을 표시할 때 다른 화면을 조작할 수 없음
<behaviors:Interaction.Triggers>
    <l:InteractionMessageTrigger MessageKey="OpenMessageKey" Messenger="{Binding Messenger}">
        <l:TransitionInteractionMessageAction WindowType="{x:Type v:SubWindow}" Mode="Normal"/>
    </l:InteractionMessageTrigger>
</behaviors:Interaction.Triggers>

<Grid>
    <StackPanel VerticalAlignment="Center" >
        <TextBox Text="{Binding Text}" />
        <Button Content="Open" Command="{Binding OpenCommand}" />
    </StackPanel>
</Grid>

ViewModel 측면의 원본


메신저를 사용하여 메시지를 보냅니다.
ViewModel 측에서 지정한 메시지 키와 일치하는 InteractionMessageTrigger를 실행합니다.
ViewModel.cs
private string text;
public string Text { get => text; set => RaisePropertyChangedIfSet(ref text, value); }

private ViewModelCommand openCommand;
public ViewModelCommand OpenCommand => openCommand ??= new ViewModelCommand(ShowDetailWindow);
private void ShowDetailWindow()
{
    Messenger.Raise(new TransitionMessage(new SubWindowViewModel(text), "OpenMessageKey"));
}

 

환경


VisualStudio2019
.Net Core3.0
Livet v3.2.1

참조


GitHub Livet

좋은 웹페이지 즐겨찾기