簡體   English   中英

如果與上一個相關的數據不正確,如何停止選擇ListBoxItem?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM