다른 화면 표시 방법
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.csprivate 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
Reference
이 문제에 관하여(다른 화면 표시 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/choni-k/items/6b2bc6fd08f884044f62
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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.csprivate 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
Reference
이 문제에 관하여(다른 화면 표시 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/choni-k/items/6b2bc6fd08f884044f62
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<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 측에서 지정한 메시지 키와 일치하는 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
Reference
이 문제에 관하여(다른 화면 표시 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/choni-k/items/6b2bc6fd08f884044f62
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
GitHub Livet
Reference
이 문제에 관하여(다른 화면 표시 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/choni-k/items/6b2bc6fd08f884044f62텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)