Window Closed
이벤트를 내 ViewModel로 리디렉션하려고하지만 AttachedProperties 사용 경험이 부족합니다.WPF AttachedProperty를 사용하여 창을 닫고 ViewModel에서 동작합니다.
는 창을 닫고 RelayCommand
을 트리거 할 수 있도록 어떻게 동작을 구현할 수 AttachedProperty
public class WindowClosedBehavior
{
public static readonly DependencyProperty ClosedProperty = DependencyProperty.RegisterAttached(
"Closed",
typeof (ICommand),
typeof (WindowClosedBehavior),
new UIPropertyMetadata(ClosedChanged));
private static void ClosedChanged(
DependencyObject target,
DependencyPropertyChangedEventArgs e)
{
var window = target as Window;
if (window != null)
{
// ??
}
}
public static void SetClosed(Window target, ICommand value)
{
target.SetValue(ClosedProperty, value);
}
}
을 보유하고 클래스?
제 (스트리핑) 뷰 모델 :
public RelayCommand WindowClosedCommand { get; private set; }
public MainCommandsViewModel()
{
WindowClosedCommand = new RelayCommand(WindowClosedCommandOnExecuted, WindowClosedCommandOnCanExecute);
}
MainWindow.xaml
<Window x:Class="TvShowManager.UserInterface.Views.MainWindow"
<!-- left out irrelevant parts -->
xmlns:closeBehaviors="clr-namespace:TvShowManager.UserInterface.CloseBehaviors"
closeBehaviors:WindowClosedBehavior.Closed="{Binding WindowCloseCommand}" >
I 단순히 RelayCommand
(WindowCloseCommand)를 결합 부착 속성.
내가 더 잘 이해하고 희망을 진행하는 방법을 알아 내기 위해이를 통해 디버깅을 시도했지만 중단 점은 내 연결된 속성을 보유하고있는 클래스에서 때린되고있다. 아무도 왜 내 코드가
WindowClosedBehavior
에 처형되지 않는다고 설명 할 수 있다면 거기에있는 조언에 크게 감사 할 것입니다.
나는 달성하려는 목표와 누군가가 나를 도울 수 있기를 바랍니다.
많은 감사
ClosedChanged
콜백 내에서
궁금한 점 : WindowCloseCommand에 직접 바인딩하여 원하는 결과를 얻지 않는 이유는 무엇입니까? – WAQ
@WQad, 어떤 속성을 명령에 바인딩하겠습니까? – bas