我有一個設定為 true的ComboBox 。IsEditable如果我輸入自定義選項然后重置選項串列(甚至洗掉所有選項),顯示的文本不會改變。這正是我想要的。但是,如果我選擇或輸入串列中的選項,然后從串列中洗掉該選項,則所選文本將重置為 null 或空字串。在第二個實體中,我希望所選文本不會更改(基本上變成自定義條目)。
我嘗試使用SourceUpdatedand 設定Handled為 true 但無論我嘗試用新的 ObservableCollection 替換它還是呼叫Clear.
此外,手動管理該值是有問題的,因為延遲事件會在控制元件本身上觸發以回應更改。如果我使用以下代碼,則控制元件會在所有內容執行完畢后回應更新的串列(并重置值)。
string holdValue = SelectedListString;
ListOptions.Clear();
SelectedListString = holdValue;
這是一個“很高興擁有”,所以我希望有一個簡單的解決方案,并且不能使用 3rd 方庫。最壞的情況我想我可以做一些 hacky 更改跟蹤,然后防止在依賴屬性上呼叫 setter 時修改值SelectedListString,但我希望有更簡單的東西。
uj5u.com熱心網友回復:
您可以像這樣將“SelectedListString”屬性與“ComboBox”的“Text”屬性系結
<ComboBox IsEditable="True"
ItemsSource="{Binding ListOptions}"
SelectedItem="{Binding SelectedListString}"
Text="{Binding SelectedListString}"/>
當您清除串列時,您會像以前一樣手動保留該值
string holdValue = SelectedListString;
ListOptions.Clear();
SelectedListString = holdValue;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/493772.html
