public class MainWindowVM
{
public MainWindowVM()
{
PersonList = new ObservableCollection<Person>(Employees);
}
private Person[] Employees = new Person[]
{
new Person { ID = 1, Name = "Adam" },
new Person { ID = 2, Name = "Bill" },
new Person { ID = 10, Name = "Charlie" },
new Person { ID = 15, Name = "Donna" },
new Person { ID = 20, Name = "Edward" }
};
public ObservableCollection<Person> PersonList { get; set; }
}
Person.cs
public class Person
{
public string Name { get; set; }
public int ID { get; set; }
}
MainWindow.xaml (कार्यात्मक काम कर संस्करण - नहीं हैं कि क्या मैं प्रदर्शित करना चाहते हैं)
<Window x:Class="TestApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<ComboBox Height="23" Width="300"
ItemsSource="{Binding Path=Objects}"
DisplayMemberPath="Name"
>
</ComboBox>
</Grid>
</Window>
MainWindow.x एएमएल (दिखाता है सही ढंग से - ठीक ढंग से काम नहीं करता है)
<Window x:Class="TestApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<ComboBox Height="23" Width="300"
ItemsSource="{Binding Path=Objects}"
>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock DataContext="{Binding}">
<TextBlock.Text>
<MultiBinding StringFormat="{} {0} | {1}">
<Binding Path="ID" />
<Binding Path="Name" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Window>
दूसरा कोड प्रदर्शित करता है कि मैं क्या ComboBox {ID} | {Name}
प्रदर्शित करना चाहते हैं, लेकिन यह ComboBox का एक आम समारोह दूर ले जाता है। पहले उदाहरण में, जब कॉम्बोबॉक्स का चयन किया जाता है तो उपयोगकर्ता इसमें टाइप करना शुरू कर सकता है और इसे सूची में नीचे चला सकता है। उदाहरण के लिए, यदि आप अक्षर ए दबाते हैं तो यह "एडम" पर कूदता है, बी "बिल" पर कूदता है, इस तरह कॉम्बोबॉक्स को काम करना चाहिए। लेकिन, जब मैं कॉम्बोबॉक्स आइटम टेम्पलेट को ओवरराइड करता हूं तो यह कार्यक्षमता खो देता है। क्या मुझे बांधने का एक और तरीका है जो मुझे चाहिए और उस कार्यक्षमता को बनाए रखें या इसे पुन: सक्षम करें? शायद आइटम टेम्पलेट गलत है?
यह कर मैं आपके सवाल का सही ढंग से समझ रह गए हैं या आप कुछ और देख रहे थे? अगर मुझे कुछ स्पष्टीकरण देने की ज़रूरत है या मुझे यहां ट्रैक करने का तरीका है तो मुझे बताएं :) –