![](/img/trans.png)
[英]How to select a ListBoxItem which is already selected OR to highlight previous selected ListBoxItem after setting SelectedIndex to -1?
[英]How to stop a ListBoxItem from being selected if the data related to the previous one is incorrect?
我有一個ListBox
,單擊該ListBox
會向用戶顯示數據。 如果用戶輸入無效數據,並且他們單擊列表中的另一個項目,則我想防止選擇他們單擊的ListBoxItem
。 但是,當前ListBoxItem_Selected
事件在選擇ListBoxItem
之后觸發,因此我不知道如何停止選擇下一個列表框項目。
在ListBoxItem_Selected
事件中,我正在驗證數據,但是現在為時已晚。
只需執行
((ListBoxItem)this.ListBox.Items[previousIndex]).IsSelected = true;
要么
this.ListBox.SelectedIndex = previousIndex;
不起作用,即下一個列表項仍處於選中狀態。
如果輸入的數據無效,如何防止選擇下一項?
因此,執行此操作的最佳方法是將啟用的列表框綁定到代碼中的布爾值。
像這樣
public bool enabledOrNot { get; set; }
<Listbox isEnabled={Binding enabledOrNot}>...
然后,當您在第一個輸入上進行驗證時,可以設置此布爾值,它將根據需要啟用或禁用。
另一種方法是使用ValidationRules。 我知道我們在工作時會在代碼中使用它們,但是它們讓我難以理解。 我所知道的是,它們以某種方式先經過驗證,然后再進行其他操作。 其內置的.NET功能
http://msdn.microsoft.com/zh-CN/library/system.windows.data.binding.validationrules.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.