我有一個窗口,其中包含一個TabControl,其中包含2個TabItems。在第二個選項卡中,有一個TextBox,它綁定了我的視圖模型中的字符串屬性。我希望能夠在用戶單擊不同的選項卡(以及用戶關閉窗口)時清除此屬性(或者TextBox,因爲它將被綁定,這將通過關聯,清除屬性)。我希望我只能使用XAML實現這一點,因爲我試圖遵循MVVM模式(所以沒有代碼隱藏,我的視圖模型不應該知道在我的視圖中的TabControl或TextBox)。使用TabControl中的選定選項卡清除變量 - WPF
我已經嘗試了幾個不同的東西,不能很好地工作,雖然我在WPF上越來越好,但我對它仍然比較陌生。在我的標籤頁中,我也有ListViews和ComboBoxes,根據我的理解,這將會使SelectionChanged事件發生(與選項卡選擇更改時相同),所以我應該遠離它。任何幫助,將不勝感激。
這裏是我的嘗試之一(代碼片段顯示要點):
<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