using FurnaceUI.Views.Recipes; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace FurnaceUI.Controls { /// /// PaginationList.xaml 的交互逻辑 /// partial class SlotsList : UserControl, INotifyPropertyChanged { public List Items { get { return (List)GetValue(ItemsProperty); } set { SetValue(ItemsProperty, value); } } public static readonly DependencyProperty ItemsProperty = DependencyProperty.Register("Items", typeof(List), typeof(SlotsList), new PropertyMetadata(null, new PropertyChangedCallback(RenderUpdateByPropertyChanged))); public bool IsListEnable { get { return (bool)GetValue(IsListEnableProperty); } set { SetValue(IsListEnableProperty, value); } } public static readonly DependencyProperty IsListEnableProperty = DependencyProperty.Register("IsListEnable", typeof(bool), typeof(SlotsList), new UIPropertyMetadata(true, new PropertyChangedCallback(RenderUpdateByPropertyChanged))); public int CurrentItemIndex { get { return (int)GetValue(CurrentItemIndexProperty); } set { SetValue(CurrentItemIndexProperty, value); } } public static readonly DependencyProperty CurrentItemIndexProperty = DependencyProperty.Register("CurrentItemIndex", typeof(int), typeof(SlotsList), new PropertyMetadata(-1, new PropertyChangedCallback(RenderUpdateByPropertyChanged))); public SlotsList() { InitializeComponent(); } public void UpdateSlotsList() { list.ItemsSource = Items; //list.IsEnabled = IsListEnable; } public event PropertyChangedEventHandler PropertyChanged; public static void RenderUpdateByPropertyChanged(DependencyObject dependency, DependencyPropertyChangedEventArgs e) { if (dependency is SlotsList hslThermometer) { hslThermometer.UpdateSlotsList(); } } private void Button_Click_1(object sender, RoutedEventArgs e) { Button btn = sender as Button; CurrentItemIndex = (int)btn.Tag; } } }