तो जाहिर है कि मैं कुछ गलत कर रहा हूं, लेकिन मुझे डेटाटाइप संपत्ति का उपयोग करते समय काम करने के लिए HierarchicalDataTemplate (या यहां तक कि केवल डेटा टेम्पलेट) नहीं मिल रहा है। मैंने समस्या का प्रदर्शन करने के लिए सबसे कम संभव WPF एप्लिकेशन बनाया है।मैं एक WPF डेटा टेम्पलेट पर डेटाटाइप संपत्ति का उपयोग कैसे करूं?
XAML:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:WpfApplication1"
Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
<Window.Resources>
<HierarchicalDataTemplate DataType="x:Type local:Foo">
<TextBlock Text="I am a Foo" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="x:Type System:String">
<TextBlock Text="I am a String" />
</HierarchicalDataTemplate>
</Window.Resources>
<Grid>
<TreeView Name="treeView1" ItemsSource="{Binding}" />
</Grid>
</Window>
कोड:
namespace WpfApplication1
{
public class Foo
{
public string Name { get; set; }
}
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
var list = new List<object> { "a", 1, "b", 2, new Foo() { Name="Brian"}};
treeView1.DataContext = list;
}
}
}
जाहिर है मैं इसे treeview में निम्नलिखित प्रदर्शित की उम्मीद कर रहा हूँ।
I am a string
1
I am a string
2
I am a foo
लेकिन मेरा आवेदन वास्तव में निम्नलिखित प्रदर्शित करता है।
a
1
b
2
WpfApplication1.Foo
अजीब बात यह है कि लगभग हर उदाहरण मैं वेब पर देखते हैं कि यह बहुत बात (मामूली बदलाव के साथ) करता है और कोई और इसके साथ एक समस्या हो रही किया जा रहा है है। फिर भी मैंने XAML को पुन: व्यवस्थित करने के अनगिनत विभिन्न तरीकों का प्रयास किया है और कुछ भी मदद नहीं करता है। मुझे आशा है कि एक और जोड़ी आंखें मदद कर सकती हैं।
हाहा ... यह बहुत शर्मनाक है। 100% कोई रास्ता नहीं है कि मैं आप में से कोई भी कह रहा हूं कि मैंने इस पर काम करने में कितना समय लगाया :) –
मैं * सोचता हूं * आप डेटाटाइप = "लोकल: फू" से भी दूर हो सकते हैं (एक्स: टाइप या घुंघराले ब्रेसिज़ के बिना) , तो शर्मिंदा मत हो। इसे बनाना एक आसान गलती है! –
@ ब्रायन, डब्ल्यूपीएफ सीखने की वक्र में आपका स्वागत है। आप इनमें से कई में आ जाएंगे, उन्हें आपको नीचे जाने न दें। – user7116