예제 #1
0
        public void SelectedItem_Validation()
        {
            using (UnitTestApplication.Start(TestServices.MockThreadingInterface))
            {
                var target = new Carousel
                {
                    Template = new FuncControlTemplate <Carousel>(CreateTemplate), IsVirtualized = false
                };

                target.ApplyTemplate();
                target.Presenter.ApplyTemplate();

                var exception      = new System.InvalidCastException("failed validation");
                var textObservable =
                    new BehaviorSubject <BindingNotification>(new BindingNotification(exception,
                                                                                      BindingErrorType.DataValidationError));
                target.Bind(ComboBox.SelectedItemProperty, textObservable);

                Assert.True(DataValidationErrors.GetHasErrors(target));
                Assert.True(DataValidationErrors.GetErrors(target).SequenceEqual(new[] { exception }));
            }
        }
        public MainWindow()
        {
            InitializeComponent();

            var comboImgBinding   = ImgCombo.Bind(ComboBox.ItemsProperty, sourcePath);
            var carousBinding     = ImagesCar.Bind(Carousel.ItemsProperty, sourceImg);
            var comboClassBinding = NumCombo.Bind(ComboBox.ItemsProperty, sourceNum);
            var listBocBinding    = ImagesListBox.Bind(ListBox.ItemsProperty, sourceLB);

            sourceNum.OnNext(new List <int> {
                0, 1, 2, 3, 4, 5
            });

            ImgCombo.SelectionChanged += (s, e) =>
            {
                sourceImg.OnNext(new List <Avalonia.Controls.Image> {
                    Images[ImgCombo.SelectedIndex]
                });
            };

            NumCombo.SelectionChanged += (s, e) =>
            {
                UpdateResults();
            };

            ClassButton.Click += (s, e) =>
            {
                StopButton.IsEnabled = true;
                ProccText.IsVisible  = true;
                NumCombo.IsEnabled   = true;
                if (!isProcessing)
                {
                    BeginSession();
                }
            };
            StopButton.Click += (s, e) =>
            {
                if (myRec != null)
                {
                    myRec.Stop();
                }
                isProcessing         = false;
                StopButton.IsEnabled = false;
                ProccText.IsVisible  = false;
            };

            DBButton.Click += (s, e) =>
            {
                int count;
                using (var db = new ImagesContext())
                {
                    var imgs = db.Images.ToList();
                    foreach (var im in imgs)
                    {
                        db.Images.Remove(im);
                    }
                    db.SaveChanges();
                    count = db.Images.ToList().Count;
                }
                DBAmountText.Text = "Pictures in database amount: " + count;
            };

            this.FindControl <Button>("ChooseDir").Click += async(s, e) =>
            {
                var dialog = new OpenFolderDialog();
                var res    = await dialog.ShowAsync(GetWindow());

                if (res != null)
                {
                    imgDir = res.ToString();
                    UpdateImages(imgDir);
                    ClassButton.IsEnabled = true;
                }
            };
        }