xaml:
Код: Выделить всё
Sort
Код: Выделить всё
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices.WindowsRuntime;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Media.Capture.Frames;
namespace NumberboxText;
public class TestItem : INotifyPropertyChanged
{
private int _order;
private int _min;
private int _current;
public event PropertyChangedEventHandler? PropertyChanged;
public int Order
{
get => _order;
set => SetProperty(ref _order, value);
}
public int Min
{
get => _min;
set => SetProperty(ref _min, value);
}
public int Current
{
get => _current;
set => SetProperty(ref _current, value);
}
protected void SetProperty(ref T field, T value, [CallerMemberName] string propertyName = null)
{
field = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
public sealed partial class MainWindow : Window
{
public readonly ObservableCollection Items = [];
public MainWindow()
{
this.InitializeComponent();
Items.Add(new TestItem { Order = 3, Min = 3, Current = 3 });
Items.Add(new TestItem { Order = 1, Min = 1, Current = 1 });
Items.Add(new TestItem { Order = 4, Min = 4, Current = 4 });
Items.Add(new TestItem { Order = 2, Min = 2, Current = 2 });
}
private void Button_Click(object sender, RoutedEventArgs e)
{
for (var i = Items.Count - 1; i >= 0; i--)
{
for (var j = 1; j Items[j].Order)
{
Items.Move(j - 1, j);
}
}
}
}
}
[img]https:/ /i.sstatic.net/iV1Ms4ej.png[/img]
Похоже, что просмотр списка пытается изменить значения числового поля на месте, но не может из-за ограничения Минимум, вызывая изменение значений.
Следует ли мне считать это ошибкой, о которой следует сообщить, или есть способ заставить это работать?
Подробнее здесь: https://stackoverflow.com/questions/792 ... en-ordered