Gday!क्या एक WPF कॉम्बोबॉक्स वैकल्पिक चयन प्रदर्शित कर सकता है जब उसका चयन शून्य हो?
मैं जब अपने डेटा-बाउंड चयन null
है मेरी WPF ComboBox
कुछ वैकल्पिक पाठ प्रदर्शित करना चाहते हैं।
public ThingoSelectionViewModel : INotifyPropertyChanged {
public ThingoSelectionViewModel(IProvideThingos) {
this.Thingos = IProvideThingos.GetThingos();
}
public ObservableCollection<Thingo> Thingos { get; set; }
public Thingo SelectedThingo {
get { return this.selectedThingo; }
set { // set this.selectedThingo and raise the property change notification
}
// ...
}
दृश्य XAML उम्मीद तरह से दृश्य मॉडल के लिए बाध्य किया गया है::
दृश्य मॉडल की उम्मीद गुण है
<ComboBox x:Name="ComboboxDrive" SelectedItem="{Binding Path=SelectedThingo}"
IsEditable="false" HorizontalAlignment="Left" MinWidth="100"
IsReadOnly="false" Style="{StaticResource ComboboxStyle}"
Grid.Column="1" Grid.Row="1" Margin="5" SelectedIndex="0">
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem IsEnabled="False">Select a thingo</ComboBoxItem>
<CollectionContainer
Collection="{Binding Source={StaticResource Thingos}}" />
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
ComboBoxItem
शीर्ष में अंकित लिए एक रास्ता है शीर्ष पर एक अतिरिक्त आइटम प्राप्त करें। यह शुद्ध क्रोम है: दृश्य मॉडल शुद्ध और सरल रहता है। केवल एक समस्या है: जब भी कॉम्बोबॉक्स का चयन शून्य होता है तो उपयोगकर्ता प्रदर्शित होते हैं "एक चीज़ो चुनें"।
उपयोगकर्ता डिफ़ॉल्ट रूप से कोई चीज़ नहीं चुनते हैं। वे एक चीज़ को चुनने के लिए उन्हें एक संदेश देखना चाहते हैं।
मैं एक ToString
विधि लौटने "एक thingo चुनें" अगर इसकी .ActualThingo
संपत्ति शून्य है, प्रत्येक Thingo
लपेटकर के रूप में मैं Thingos
पॉप्युलेट के साथ एक ThingoWrapper
वर्ग के साथ viewmodel अपवित्र से बचने के लिए चाहते हैं, और किसी तरह पता लगाना उपयोगकर्ता को Thingo
को चुनने से रोकें।
क्या ComboBox
'शुद्ध एक्सएएमएल, या शुद्ध एक्सएएमएल और दृश्य कोड कोड-बैक क्लास में कोड की कुछ पंक्तियों का उपयोग करते हुए' एक चीज़ो का चयन करें 'प्रदर्शित करने का कोई तरीका है?
FWIW: मैं ThingoWrapper को लागू करने समाप्त हो गया, ThingoSelectionViewModel संशोधित लिपटे शून्य मान के चयन से निपटने के लिए, और तरीके स्वचालित रूप से चयन करने के लिए खोजने Whatsy और Fadoozamy वस्तुओं तो मुझे भी उन्हें लपेटना नहीं था, भी। –