diff --git a/src/SampleApp.WinDesktop/MainWindow.xaml b/src/SampleApp.WinDesktop/MainWindow.xaml index 8986380..25e05c2 100644 --- a/src/SampleApp.WinDesktop/MainWindow.xaml +++ b/src/SampleApp.WinDesktop/MainWindow.xaml @@ -3,25 +3,25 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:SampleApp.WinDesktop" Title="Sample App" Height="500" Width="625"> - - - - - + + + + + - + diff --git a/src/SampleApp.WinDesktop/MainWindow.xaml.cs b/src/SampleApp.WinDesktop/MainWindow.xaml.cs index 057ebcb..3011c23 100644 --- a/src/SampleApp.WinDesktop/MainWindow.xaml.cs +++ b/src/SampleApp.WinDesktop/MainWindow.xaml.cs @@ -106,6 +106,23 @@ namespace SampleApp.WinDesktop gpgllView.Message = args.Message as NmeaParser.Nmea.Gps.Gpgll; else if (args.Message is NmeaParser.Nmea.Gps.Garmin.Pgrme) pgrmeView.Message = args.Message as NmeaParser.Nmea.Gps.Garmin.Pgrme; + else if (args.Message is NmeaParser.Nmea.UnknownMessage) + { + var ctrl = MessagePanel.Children.OfType().Where(c => c.Message.MessageType == args.Message.MessageType).FirstOrDefault(); + if(ctrl == null) + { + ctrl = new UnknownMessageControl() + { + Style = this.Resources["card"] as Style + }; + MessagePanel.Children.Add(ctrl); + } + ctrl.Message = args.Message as NmeaParser.Nmea.UnknownMessage; + } + else + { + // + } }); } diff --git a/src/SampleApp.WinDesktop/SampleApp.WinDesktop.csproj b/src/SampleApp.WinDesktop/SampleApp.WinDesktop.csproj index 3dc04f4..6198350 100644 --- a/src/SampleApp.WinDesktop/SampleApp.WinDesktop.csproj +++ b/src/SampleApp.WinDesktop/SampleApp.WinDesktop.csproj @@ -66,6 +66,9 @@ KeyValuePairControl.xaml + + UnknownMessageControl.xaml + PgrmeControl.xaml @@ -94,6 +97,10 @@ Designer MSBuild:Compile + + MSBuild:Compile + Designer + MSBuild:Compile Designer diff --git a/src/SampleApp.WinDesktop/UnknownMessageControl.xaml b/src/SampleApp.WinDesktop/UnknownMessageControl.xaml new file mode 100644 index 0000000..6bdf9d6 --- /dev/null +++ b/src/SampleApp.WinDesktop/UnknownMessageControl.xaml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + diff --git a/src/SampleApp.WinDesktop/UnknownMessageControl.xaml.cs b/src/SampleApp.WinDesktop/UnknownMessageControl.xaml.cs new file mode 100644 index 0000000..8ff11d0 --- /dev/null +++ b/src/SampleApp.WinDesktop/UnknownMessageControl.xaml.cs @@ -0,0 +1,40 @@ +using NmeaParser.Nmea; +using NmeaParser.Nmea.Gps; +using NmeaParser.Nmea.Gps.Garmin; +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 SampleApp.WinDesktop +{ + /// + /// Interaction logic for UnknownMessageControl.xaml + /// + public partial class UnknownMessageControl : UserControl + { + public UnknownMessageControl() + { + InitializeComponent(); + } + + public UnknownMessage Message + { + get { return (UnknownMessage)GetValue(MessageProperty); } + set { SetValue(MessageProperty, value); } + } + + public static readonly DependencyProperty MessageProperty = + DependencyProperty.Register("Message", typeof(NmeaParser.Nmea.UnknownMessage), typeof(UnknownMessageControl), new PropertyMetadata(null)); + } +}