हालांकि इस सवाल का काफी पुराना है और अच्छी तरह से पहले से ही जवाब दिया, मैंने सोचा कि मैं यह अतिरिक्त जवाब जोड़ूंगा में चयनित TabItem
को बदलने का एक वैकल्पिक तरीका प्रदर्शित करने के लिए। यदि आपके पास प्रत्येक TabItem
के लिए एक दृश्य मॉडल है, तो यह निर्धारित करने के लिए कि क्या यह चुना गया है या नहीं, IsSelected
संपत्ति होने में यह सहायक हो सकता है। यह संभव है डेटा ItemContainerStyle
संपत्ति का उपयोग कर TabItem.IsSelected
संपत्ति के साथ इस IsSelected
संपत्ति बाध्य करने के लिए:
<TabControl ItemsSource="{Binding MenuItems}" TabStripPlacement="Top">
<TabControl.ItemTemplate>
<DataTemplate DataType="{x:Type ControlViewModels:MenuItemViewModel}">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding ImageSource}" Margin="0,0,10,0" />
<TextBlock Text="{Binding HeaderText}" FontSize="16" />
</StackPanel>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate DataType="{x:Type ControlViewModels:MenuItemViewModel}">
<ContentControl Content="{Binding ViewModel}" />
</DataTemplate>
</TabControl.ContentTemplate>
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="IsSelected" Value="{Binding IsSelected}" />
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
अब आप चयनित TabItem
इस तरह जनक दृश्य मॉडल से बदल सकते हैं:
MenuItems[0].IsSelected = true;
ध्यान दें कि क्योंकि यह गुण TabItem.IsSelected
संपत्ति से जुड़ा हुआ डेटा है, इसे कॉल कर रहा है ...:
MenuItems[1].IsSelected = true;
... वास्तव में MenuItems[0].IsSelected
संपत्ति false
पर स्वचालित रूप से सेट भी करेगा। इसलिए यदि आपके द्वारा काम कर रहे दृश्य मॉडल में IsSelected
संपत्ति सत्य पर सेट है, तो आप सुनिश्चित हो सकते हैं कि इसका संबंधित दृश्य TabControl
में चुना गया है।
कृपया एक WPF 'विंडो' को" फ़ॉर्म "न कहें। यह अपमान है। –
लॉल @ हाईकोर - मैंने सचमुच कुछ दिनों पहले एक सहयोगी को एक ही चीज़ कहा था ... – JerKimball
कृपया देखें [यह] (http://stackoverflow.com/questions/15209870/dynamically-updating-tabcontrol-content- एटी-रनटाइम/15210593 # 15210593) एक एमवीवीएम दृष्टिकोण से, 'टैबकंट्रोल' क्या है और इसका इलाज कैसे किया जाना चाहिए इसका स्पष्टीकरण। –