using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
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 Bro.UI.Ctrls
{
///
/// LogCtrl.xaml 的交互逻辑
///
public partial class LogCtrl : UserControl
{
public LogCtrl()
{
InitializeComponent();
}
public static readonly DependencyProperty LogListProperty;
public ObservableCollection LogList
{
get => GetValue(LogListProperty) as ObservableCollection;
set => SetValue(LogListProperty, value);
}
static LogCtrl()
{
LogListProperty = DependencyProperty.Register("LogList", typeof(ObservableCollection), typeof(LogCtrl), new PropertyMetadata(new ObservableCollection(), OnLogListPropertyChanged));
}
private static void OnLogListPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
LogCtrl ctrl = d as LogCtrl;
if (ctrl != null)
{
ctrl.LogList = e.NewValue as ObservableCollection;
ctrl.lvLog.ItemsSource = ctrl.LogList;
ctrl.LogList.CollectionChanged += ctrl.LogList_CollectionChanged;
}
}
private void LogList_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
lvLog.ItemsSource = LogList;
if (!lvLog.IsFocused && lvLog.Items.Count > 0)
{
lvLog.ScrollIntoView(lvLog.Items[lvLog.Items.Count - 1]);
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
LogList.Clear();
}
}
}