You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.5 KiB
90 lines
2.5 KiB
using ListBoxLinqBindingSample.Model;
|
|
using ListBoxLinqBindingSample.SubWindow;
|
|
using ListBoxLinqBindingSample.ViewModel;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
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 ListBoxLinqBindingSample
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for MainWindow.xaml
|
|
/// </summary>
|
|
public partial class MainWindow : Window
|
|
{
|
|
private static Duties _duties = new Duties();
|
|
|
|
public delegate void RefreshList(DutyType dutyType);
|
|
public event RefreshList RefreshListEvent;
|
|
|
|
public MainWindow()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
internal static Duties Duties
|
|
{
|
|
get { return _duties; }
|
|
set { _duties = value; }
|
|
}
|
|
|
|
private void RefreshListBox(DutyType dutyType)
|
|
{
|
|
lstType.SelectedItem = null;
|
|
lstType.SelectedIndex = dutyType == DutyType.Inside ? 0 : 1;
|
|
}
|
|
|
|
private void btnAdd_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
SubWindow.SubWindow subWindow = new SubWindow.SubWindow();
|
|
|
|
this.RefreshListEvent += new RefreshList(RefreshListBox);
|
|
subWindow.UpdateActor = this.RefreshListEvent;
|
|
subWindow.Show();
|
|
}
|
|
|
|
private void lstType_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
{
|
|
ListBox lb = sender as ListBox;
|
|
if (lb == null)
|
|
return;
|
|
|
|
if (lb.SelectedItem == null)
|
|
return;
|
|
|
|
ListBoxItem item = lb.SelectedItem as ListBoxItem;
|
|
string dutyType = item.Content.ToString();
|
|
|
|
this.DataContext = from duty in _duties
|
|
where duty.DutyType.ToString() == dutyType
|
|
select duty;
|
|
}
|
|
|
|
private void lstMain_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
{
|
|
ListBox lb = sender as ListBox;
|
|
if (lb == null)
|
|
return;
|
|
|
|
if (lb.SelectedItem == null)
|
|
return;
|
|
|
|
Duty duty = lb.SelectedItem as Duty;
|
|
if (duty == null)
|
|
return;
|
|
|
|
MessageBox.Show($"{duty.Name} :: {duty.DutyType}", "Selected duty");
|
|
}
|
|
}
|
|
}
|
|
|