예 (순수 XAML은 아니지만 ElementName을 사용하지 않음). 대신 기본 창에 대한 참조를 설정 창으로 전달해야합니다. 그런 다음 VisualBrush.Visual을 해당 참조에 바인딩 할 수 있습니다. MainWindow를가 SettingsWindow의 지금 때문에
가
// MainWindow.xaml.cs
SettingsWindow w = new SettingsWindow { DataContext = this };
w.Show();
그런 다음 SettingsWindow 당신이 ({Binding}
으로 MainWindow를 액세스 할 수 있습니다 : 설정 창을 만들 때, 당신은 메인 창에 자신의 DataContext를 설정할 수 있습니다 간단한 예를 들어
DataContext를, 그리고
{Binding}
)는 DataContext를 참조합니다 그건 너무 무딘 때문에
가 실제로
<!-- SettingsWindow.xaml -->
<Rectangle.Fill>
<VisualBrush Stretch="Uniform" Visual="{Binding}" />
</Rectangle.Fill>
당신은 아마의 DataContext로 메인 창 개체를 전달 싶지 않을 것이다 희망을 갖고 이것은 당신에게 아이디어를 준다.
멍청한 질문이지만 "너무 멍청한 악기이기 때문에 주 창 개체를 DataContext로 전달하고 싶지 않을 것입니다"라는 말은 무엇을 의미합니까? 나는 무엇을 통과해야합니까? – Justin
문제는 MainWindow에 DataContext를 설정하면 DataContext로 다른 것을 설정할 수 없다는 것입니다. 특히, 설정 윈도우가 일종의 설정 객체에 바인딩되기를 원하기 때문에 아마도 설정 객체가 DataContext ... 또는 적어도 DataContext의 일부가되기를 원할 것입니다. WPF의 관용적 인 솔루션은 뷰 (이 경우 MainWindow 비주얼 및 설정 객체)에 필요한 모든 정보를 포함하는 "뷰 모델"클래스를 만들고이 "뷰 모델"에 DataContext를 설정하는 것입니다. 희망은 지금 조금 더 의미가 있습니다! – itowlson
있습니다. 고마워요! – Justin