Goal:
Latest added data should be on the first line of in listview. The sorting part is based on column date.
Problem:
Dont't know how to make a automatical sorting in the listview after adding a data.
Please remember that I don't use syntax itemsource, List<XXXXXX> and Binding source.
public partial class FlightForm : Window
{
public delegate void TakeOffHandler(object source, TakeOffEventArgs e);
public delegate void ChangeHandler(object source, ChangeRouteEventArgs e);
public event TakeOffHandler TakeOffEvent;
public event ChangeHandler ChangeEvent;
public FlightForm()
{
InitializeComponent();
Title = "Flight ";
cmbStatus.Visibility = Visibility.Hidden;
btnLand.Visibility = Visibility.Hidden;
}
private void btnStart_Click(object sender, RoutedEventArgs e)
{
cmbStatus.Visibility = Visibility.Visible;
btnLand.Visibility = Visibility.Visible;
btnStart.Visibility = Visibility.Hidden;
TakeOffEvent(this, new TakeOffEventArgs("a", "b", DateTime.Now.ToString()));
ChangeEvent(this, new ChangeRouteEventArgs("aa", "bb", "cc"));
}
}
------------------------------------------
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class ControlTower : Window
{
public ControlTower()
{
InitializeComponent();
}
private FlightForm myFlightForm;
private void btnSendNextAirplane_Click(object sender, RoutedEventArgs e)
{
myFlightForm = new FlightForm();
myFlightForm.TakeOffEvent += new FlightForm.TakeOffHandler(PrintOutTakeOff);
myFlightForm.ChangeEvent += new FlightForm.ChangeHandler(PrintOutChange);
myFlightForm.Show();
}
public void PrintOutTakeOff(object source, TakeOffEventArgs e)
{
lstDisplay.Items.Add(new { FlightCode = e.FlightCode, Status = e.Status, Time = e.Time });
}
public void PrintOutChange(object source, ChangeRouteEventArgs e)
{
string test = e.FlightCode + e.Status + e.Time;
MessageBox.Show(test);
}
}
-------------------------------------------
<Window x:Class="Assignment3.ControlTower"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Control Tower" Height="326" Width="420">
<Grid Height="282">
<Button Content="Send next Airplane to Runway" Height="23" HorizontalAlignment="Left" Margin="225,250,0,0" Name="btnSendNextAirplane" VerticalAlignment="Top" Width="163" Click="btnSendNextAirplane_Click" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="81,250,0,0" Name="txtFlightCode" VerticalAlignment="Top" Width="120" />
<Label Content="Next flight:" Height="28" HorizontalAlignment="Left" Margin="6,250,0,0" Name="label1" VerticalAlignment="Top" />
<ListView Height="244" HorizontalAlignment="Left" Margin="12,0,0,0" Name="lstDisplay" VerticalAlignment="Top" Width="372">
<ListView.View>
<GridView>
<GridViewColumn Header="Flight Code" Width="70" DisplayMemberBinding="{Binding FlightCode}" />
<GridViewColumn Header="Status" Width="160" DisplayMemberBinding="{Binding Status}" />
<GridViewColumn Header="Time" Width="120" DisplayMemberBinding="{Binding Time}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
</Window>
------------------------------------
<Window x:Class="Assignment3.FlightForm"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="FlightForm" Height="305" Width="352">
<Grid>
<Button Content="Start" Height="23" HorizontalAlignment="Left" Margin="0,216,0,0" Name="btnStart" VerticalAlignment="Top" Width="75" Click="btnStart_Click" />
<ComboBox Height="23" HorizontalAlignment="Left" Margin="81,216,0,0" Name="cmbStatus" VerticalAlignment="Top" Width="120" Visibility="Visible" />
<Button Content="Land" Height="23" HorizontalAlignment="Left" Margin="217,216,0,0" Name="btnLand" VerticalAlignment="Top" Width="75" />
</Grid>
</Window>