91手机视频在线-91手机视频在线观看-91手机在线-91手机在线播放-91手机在线观看

完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業名稱
* 信用代碼
* 所在行業
* 企業規模
* 所在職位
* 姓名
* 所在行業
* 學歷
* 工作性質
請先選擇行業
您還可以選擇以下福利:
行業福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

二次開發教程:WPF 使用INotifyDataErrorInfo小例子

發布于:2019-07-25 15:27:58

網友投稿

更多

<Window x:Class="ErrorsTest.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

        xmlns:local="clr-namespace:ErrorsTest"

        mc:Ignorable="d"

        Title="MainWindow" Height="268.884" Width="411.588">    

    <Window.Resources>       

        <Style TargetType="TextBox">

            <Style.Triggers>

                <Trigger Property="Validation.HasError" Value="true">

                    <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self},Path=(Validation.Errors)[0].ErrorContent}"/>

                </Trigger>

            </Style.Triggers>

        </Style>

    </Window.Resources>

    <Grid>

        <TextBox x:Name="textBox" Text="{Binding Path= N,ValidatesOnNotifyDataErrors=True}"  

                 HorizontalAlignment="Left" Height="23" Margin="97,92,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" >

        </TextBox>

        <Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="217,158,0,0" 

                VerticalAlignment="Top" Width="75"/>

    </Grid>

</Window>




    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

            this.DataContext = new ViewModel();

        }

    }


    public class ViewModel : INotifyDataErrorInfo,INotifyPropertyChanged

    {

        private Dictionary<string, List<string>> _errors = new Dictionary<string, List<string>>();

        private int n = 0;

        public int N

        {

            get

            {

                return n;

            }

            set

            {

                List<string> te = new List<string>();

                if(value<0)

                {

                    te.Add("不能小于0!");

                }

                if(value%2!=0)

                {

                    te.Add("不能位奇數!");

                }

                SetErrors("N", te);

                n = value;

            }

        }


        public bool HasErrors

        {

            get

            {

                return _errors.Count != 0;

            }

        }


        public event EventHandler<DataErrorsChangedEventArgs> ErrorsChanged;

        public event PropertyChangedEventHandler PropertyChanged;

        private void RaiseNotifyPropertyChanged(string name)

        {

            if(null!=PropertyChanged)

            {

                PropertyChanged(this, new PropertyChangedEventArgs(name));

            }

        }

        private void SetErrors(string name,List<string> errors)

        {

            if (errors.Count == 0)

            {

                errors.Remove(name);

            }

            else

            {

                if (_errors.ContainsKey(name))

                {

                    _errors[name] = errors;

                }

                else

                {

                    _errors.Add(name, errors);

                }

            }

            RaiseErrorsChanged(name);

        }

        private void RaiseErrorsChanged(string name)

        {

            if(ErrorsChanged!=null)

            {

                ErrorsChanged(this, new DataErrorsChangedEventArgs(name));

            }

        }


        public IEnumerable GetErrors(string propertyName)

        {

            return _errors[propertyName];

        }

    }

本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。

未標題-1.jpg

上一篇:二次開發教程:Revit開發自定義警告

下一篇:二次開發教程:C#DynamicObject和ExpandoObject

主站蜘蛛池模板: 亚洲福利精品一区二区三区 | 伊人久久在线视频 | 亚洲国产美女精品久久久久 | 免费国产成高清人在线视频 | 97福利在线 | 亚洲线精品久久一区二区三区 | 欧美一级夜夜爽 | 猫咪人成免费网站在线观看 | 达达兔午夜一级毛片 | 永久免费的啪啪免费的网址 | 香蕉免费| 亚洲国产成人久久一区久久 | 欧美一级视频精品观看 | 久久国产视屏 | 韩国午夜视频 | 国产情侣酒店自拍 | 香蕉视频在线免费看 | 国产一区曰韩二区欧美三区 | 久久久久国产一级毛片高清片 | 一级做a爰片久久毛片唾 | 亚洲精品国产第1页 | 在线看片欧美 | 一级特黄aaa大片在线观看视频 | 国产成人影院一区二区 | 久久精品网站免费观看 | 日本一级特黄a大片 | 亚洲国产成人精品青青草原100 | 欧美精品一区二区在线观看播放 | 欧美国产在线视频 | 中文字幕在线永久视频 | 日韩毛片视频 | 亚洲国产精品久久久久秋霞小 | 国产主播一区二区三区 | 蜜桃视频一区二区在线看 | www麻豆视频 | 欧美黄免在线播放 | 久久视频在线看 | 在线看免费观看韩国特黄一级 | 亚洲精品一区二区三区网址 | 欧美高清一区二区三 | 国产大片免费在线观看 |