簡體   English   中英

Windows 10(通用Windows應用程序)數據驗證

[英]Windows 10 (Universal Windows App) data validation

我試圖弄清楚如何在UWP下進行數據驗證,但根據我發現的情況,基本上沒有什么我可以實現的。

因此,我試圖實現我的自定義驗證邏輯。 我現在遇到的問題是,我在一個TextBlock上顯示錯誤信息,而不是直接在包含數據錯誤的特定TextBox下顯示。

這就是我現在所做的:

public class Customer : ViewModel
{
    private string _Name = default(string);
    public string Name { get { return _Name; } set { SetProperty(ref _Name, value); OnPropertyChanged("IsValid"); } }


    private string _Surname = default(string);
    public string Surname { get { return _Surname; } set { SetProperty(ref _Surname, value); OnPropertyChanged("IsValid"); } }

    private DateTime _DateOfBirth = default(DateTime);
    public DateTime DateOfBirth { get { return _DateOfBirth; } set { SetProperty(ref _DateOfBirth, value); OnPropertyChanged("IsValid"); } }

    public int ID { get; set; }

    public bool IsValid
    {
        get
        {
            //restart error info
            _ErrorInfo = default(string);
            if (string.IsNullOrWhiteSpace(Name))
                _ErrorInfo += "Name cannot be empty!" + Environment.NewLine;

            if (string.IsNullOrWhiteSpace(Surname))
                _ErrorInfo += "Surname cannot be empty!" + Environment.NewLine;

            //raise property changed
            OnPropertyChanged("ErrorInfo");

            return !string.IsNullOrWhiteSpace(Name) &&
                !string.IsNullOrWhiteSpace(Surname);
        }
    }


    private string _ErrorInfo = default(string);
    public string ErrorInfo { get { return _ErrorInfo; } set { SetProperty(ref _ErrorInfo, value); } }

}

題:

如何調整我的代碼,以便不是讓一個標簽包含所有錯誤信息,我可以在每個文本框下分配標簽並在那里顯示驗證錯誤? 我應該使用字典嗎? 如果是,我如何將其綁定到我的視圖?

您可以在文本框中制作彈出窗口。

一旦文本框失去了錯誤輸入的焦點,彈出按鈕就會顯示出來。

您可以在文本框的頂部/底部/側面設置彈出窗口的平面。

飛出去

祝你好運!

我很快成為使用Prism的粉絲,看到這個精彩的演示用戶輸入驗證與Prism和UWP上的數據注釋

它比我在這里輸入的任何東西都要好。

Prism的問題在於它使用字符串索引器。 但是在uwp中綁定只是不允許字符串索引...只有整數! 還缺少一些關鍵功能,例如實體視圖模型之間以及它們與上下文之間的協調。

我已經做了一些研發,似乎以下是uwp中良好驗證器的關鍵元素 - 使用字符串作為綁定目標,以避免丟棄轉換異常 - 跟蹤轉換錯誤與驗證錯誤分開 - 驗證視圖的基類model和自動生成的派生類,指定屬性名稱 - 將多個視圖模型綁定在一起的事件,以便ui的多個部分保持一致 - 與上下文關聯的集中錯誤計數和保存/恢復能力

有什么可以做到的嗎? 如果是這樣,那么我還沒有找到它。

SJB

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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