यहां मेरे पास एमवीवीएम फ्रेमवर्क में एक विकल्प है।
मेरी XAML फाइल:
<ComboBox Name="cmbContains" IsEditable="True" IsTextSearchEnabled="false" ItemsSource="{Binding pData}" DisplayMemberPath="wTitle" Text="{Binding SearchText ,Mode=TwoWay}" >
<ComboBox.Triggers>
<EventTrigger RoutedEvent="TextBoxBase.TextChanged">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsDropDownOpen">
<DiscreteBooleanKeyFrame Value="True" KeyTime="0:0:0"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ComboBox.Triggers>
</ComboBox>
मेरी सीएस फ़ाइल:
//ItemsSource - pData
//There is a string attribute - wTitle included in the fooClass (DisplayMemberPath)
private ObservableCollection<fooClass> __pData;
public ObservableCollection<fooClass> pData {
get { return __pData; }
set { Set(() => pData, ref __pData, value);
RaisePropertyChanged("pData");
}
}
private string _SearchText;
public string SearchText {
get { return this._SearchText; }
set {
this._SearchText = value;
RaisePropertyChanged("SearchText");
//Update your ItemsSource here with Linq
pData = new ObservableCollection<fooClass>{pData.ToList().Where(.....)};
}
}
आप देख सकते हैं संपादन योग्य बता गया स्ट्रिंग (SearchText) के लिए बाध्य हो जाने के बाद वहाँ एक TextChanged घटना ड्रॉप डाउन है दिखाया गया है और दो तरह बाध्यकारी मूल्य अद्यतन करें। सीएस फ़ाइल में आइटम्ससोर्स बदल गया, जबकि यह सेट {}; वाक्य - विन्यास।
A gist with the code above
स्रोत
2016-07-07 14:24:18
यह बेहतर है। हालांकि मैंने आपको वोट नहीं दिया था। मेटा http://meta.stackoverflow.com/questions/327540/was-my-edit-removing-noise-and-a-link-wrong में आपके उत्तर के बारे में बात की जा रही है ताकि आप बहुत से लोगों को मिलने जा रहे हैं । – JRSofty