किसी कारण से मुझे को को ObservableCollection
पर देखने के मॉडल के ठीक से प्रदर्शित करने के लिए सही समय पर प्रदर्शित करने का समय है। मैं यहां पाया गया ट्यूटोरियल से मेरा डिज़ाइन बंद कर रहा हूं: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx। मुझे यहां मेरे जैसे कुछ प्रश्न मिल गए लेकिन किसी ने मेरी विशेष स्थिति को संबोधित नहीं किया। यह xaml में मेरा TabControl
है।व्यूमोडल्स के संग्रह के लिए बाध्यकारी टैबकंट्रोल आइटमसोर्स
<TabControl ItemsSource="{Binding Workspaces}"
SelectedIndex="{Binding ActiveWorkspaceIndex}"
ItemTemplate="{StaticResource ClosableTabItemTemplate}"/>
ClosableTabItemTemplate
निम्नलिखित है।
<DataTemplate x:Key="ClosableTabItemTemplate">
<DockPanel Width="120">
<Button
Command="{Binding Path=CloseCommand}"
Content="X"
Cursor="Hand"
DockPanel.Dock="Right"
Focusable="False"
FontFamily="Courier"
FontSize="9"
FontWeight="Bold"
Margin="0,1,0,0"
Padding="0"
VerticalContentAlignment="Bottom"
Width="16" Height="16"
/>
<ContentPresenter
Content="{Binding Path=DisplayName}"
VerticalAlignment="Center"
/>
</DockPanel>
</DataTemplate>
Workspaces
दृश्य मॉडल की ObservableCollection
है। ActiveWorkspaceIndex
केवल सक्रिय वर्कस्पेस इंडेक्स है जो मैं दृश्य मॉडल में ट्रैक रखता हूं। मैं अपने ऐप.एक्सएएमएल फ़ाइल में निम्न डेटा टेम्पलेट के माध्यम से एक दृश्य के उदाहरण के साथ अपने व्यू मॉडल को जोड़ता हूं।
<DataTemplate DataType="{x:Type vm:ViewModelStartPage}">
<v:ViewStartPage/>
</DataTemplate>
मैं केवल कार्यक्षेत्रों के संग्रह में एक दृश्य मॉडल जोड़ता हूं। मैं टैब नियंत्रण में 2 दृश्य प्रदर्शित करता हूं और उन्हें टैब्ड नहीं किया जाता है। यह लगभग टैबकंट्रोल को अलग-अलग विचारों के साथ TabItems के रूप में नहीं जानता है, यह एक स्टैक पैनल की तरह व्यवहार करता है, जो विचारों को ढंकता है। यदि मैं कोड में टैब आइटम बना देता हूं तो यह ठीक काम करता है:
System.Windows.Controls.TabItem i = new System.Windows.Controls.TabItem();
i.Content = new Views.ViewStartPage();
i.Header = "A Tab Item";
this.xTabControl.Items.Add(i);
मुझे कुछ सामग्री टेम्पलेट या कुछ याद आना चाहिए। मैं बाद में अपने टैब स्टाइल करूँगा लेकिन अभी के लिए मैं बस बुनियादी टैब काम कर खुश हूं। टैब टैब में विचार प्रत्येक टैब के लिए भिन्न हो सकते हैं, इसलिए मैं सरल टेक्स्टब्लॉक टैबकंट्रोल टेम्पलेट उदाहरणों का उपयोग नहीं कर सकता, जो मैं पूरे स्थान पर देखता हूं ... आईई। यह नहीं ...
<TabControl.ContentTemplate>
<DataTemplate>
<TextBlock
Text="{Binding Content}" />
</DataTemplate>
कोई विचार?
मैंने परीक्षण कोड में अपना कोड आजमाया, और टैबकंट्रोल यहां अपेक्षित काम करता है। क्या आप "स्टैकिंग" टैबकंट्रोल की एक छवि पोस्ट कर सकते हैं? – Sphinxxx
इसे आज़माने के लिए धन्यवाद। मैं एक TabControl डेटा टेम्पलेट के साथ एक ContentControl का उपयोग कर समाप्त हो गया। यह चीजों को ठीक करने लग रहा था। ईमानदारी से मुझे यह समझाने के लिए पर्याप्त अनुभव नहीं हुआ कि यह बदली गई चीजें क्यों बदल रही है लेकिन अब यह काम कर रही है। मैं अपना कामकाजी कोड पोस्ट करूंगा। – akagixxer