그 안에 2 개의 TabItem이있는 TabControl이있는 창이 있습니다. 두 번째 탭 안에는 내 뷰 모델 내부에 문자열 속성에 대한 바인딩이있는 TextBox가 있습니다. 사용자가 다른 탭을 클릭 할 때마다 (그리고 사용자가 창을 닫을 때도)이 속성 (또는 TextBox는 연결에 의해 바뀌고 속성을 지울 것이기 때문에)을 지울 수 있기를 원합니다. 나는 MVAM 패턴을 따르려고하기 때문에 XAML만으로이 작업을 수행 할 수 있기를 바라고있다. (코드가 없기 때문에 내 뷰 모델은 TabControl이나 TextBox에 대해 알지 못한다.)TabControl의 선택된 탭을 사용하여 변수를 지우십시오 - WPF
저는 몇 가지 다른 것들을 시도해 봤지만 제대로 작동하지 못하고 WPF가 개선되는 중에도 상당히 익숙합니다. 내 탭 안에는 ListViews와 ComboBoxes도 있는데, 이해 한 것부터 TabChanged 이벤트를 버블 할 것입니다 (탭 선택이 변경 될 때와 동일). 어떤 도움을 주시면 감사하겠습니다.
<TabControl>
<TabItem>
...Stuff in first tab goes here
</TabItem>
<TabItem Header="Rules">
<TabItem.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{IsSelected}" Value="True">
<Setter TargetName="UserBox" Property="Text" Value="" />
</DataTrigger>
</Style.Triggers>
</Style>
</TabItem.Style>
<GroupBox>
<UniformGrid>
<ListView ItemsSource="{Binding Source={StaticResource rulesViewModel}, Path=RulesList}">
<ListView.View>
<GridView>
<GridViewColumn Header="Rules"/>
</GridView>
</ListView.View>
</ListView>
<DockPanel>
<TextBox Name="UserBox" Text="{Binding Source={StaticResource rulesViewModel}, Path=User}" />
</DockPanel>
</UniformGrid>
</GroupBox>
</TabItem>
내가 바인딩 을 읽어 줄을 확신 = "{에 isSelected}"가 잘못 : 여기
은 (요점 보여주는 스 니펫) 내 시도 중 하나였다. 하지만 올바른 속성을 타겟팅하는 방법을 모르겠습니다. 어떤 아이디어?
:) 작성하지만, 아무튼 할 수있다 작동하지 않는 것 같습니다. 다른 이벤트를 시도했지만 아무 반응이없는 것 같습니다. – AXG1010