3.5.3.2 Databinding Korrektur, Initialize() damit es keine weiteren OnLoad/Konstruktor Kollisionen gibt

This commit is contained in:
Daniel Schick 2017-04-17 16:22:37 +00:00
parent 12bbe8a1b8
commit 2a8ee17059
8 changed files with 70 additions and 12 deletions

View File

@ -16,10 +16,20 @@ namespace ENI2
public class DetailBaseControl : UserControl
{
#region Properties
public MessageCore Core { get; set; }
public List<Message> Messages { get; set; }
#endregion
#region protected methods
public virtual void Initialize() { }
#endregion
}
}

View File

@ -85,6 +85,7 @@ namespace ENI2
DetailBaseControl detailControl = (DetailBaseControl) Activator.CreateInstance(mg.MessageGroupControlType);
detailControl.Core = _core;
detailControl.Messages = _messages;
detailControl.Initialize();
// plug it in ;-)
detailView.Children.Clear();
detailView.Children.Add(detailControl);

View File

@ -3,7 +3,8 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:local="clr-namespace:ENI2.DetailViewControls"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="600">
@ -23,14 +24,20 @@
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Anlaufhafen" />
<TextBox Grid.Row="0" Grid.Column="1" IsReadOnly="True" Text="{Binding PoC}" Margin="2"/>
<TextBox Name="textBoxPoC" Grid.Row="0" Grid.Column="1" IsReadOnly="True" Text="{Binding PoC}" Margin="2"/>
<Label Grid.Row="0" Grid.Column="2" Content="Visit/Transit-ID" />
<TextBox Grid.Row="0" Grid.Column="3" IsReadOnly="True" Text="{Binding DisplayId}" Margin="2"/>
<TextBox Name="textBoxDisplayId" Grid.Row="0" Grid.Column="3" IsReadOnly="True" Margin="2"/>
<Label Grid.Row="1" Grid.Column="0" Content="IMO-Nummer" />
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding IMO}" Margin="2" />
<TextBox Name="textBoxIMO" Grid.Row="1" Grid.Column="1" Text="{Binding IMO}" Margin="2" />
<Label Grid.Row="1" Grid.Column="2" Content="ENI-Nummer" />
<TextBox Grid.Row="1" Grid.Column="3" Text="{Binding ENI}" Margin="2" />
<TextBox Name="textBoxENI" Grid.Row="1" Grid.Column="3" Text="{Binding ENI}" Margin="2" />
<Label Grid.Row="2" Grid.Column="0" Content="ETA PoC" />
<Label Grid.Row="2" Grid.Column="2" Content="ETD PoC" />
<Label Grid.Row="3" Grid.Column="0" Content="ATA PoC" />
<Label Grid.Row="3" Grid.Column="2" Content="ATD PoC" />
<xctk:DateTimePicker Grid.Column="1" Grid.Row="2" Value="{Binding ETA, Mode=TwoWay}" Name="dateTimePickerETA" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" />
<xctk:DateTimePicker Grid.Column="3" Grid.Row="2" Name="dateTimePickerETD" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" />
</Grid>
</GroupBox>
</src:DetailBaseControl>

View File

@ -27,9 +27,49 @@ namespace ENI2.DetailViewControls
/// </summary>
public partial class OverViewDetailControl : DetailBaseControl
{
private Message _message = null;
public OverViewDetailControl()
{
InitializeComponent();
}
public override void Initialize()
{
Message.NotificationClass notificationClass = this.Core.IsTransit ? Message.NotificationClass.TRANSIT : Message.NotificationClass.VISIT;
if (this.Messages == null) return;
if (this.Core == null) return;
this.textBoxENI.DataContext = this.Core;
this.textBoxIMO.DataContext = this.Core;
this.textBoxPoC.DataContext = this.Core;
this.dateTimePickerETA.DataContext = this.Core;
//this.dateTimePickerETD.DataContext = ..
Binding vtBinding = new Binding();
vtBinding.Source = this.Core;
vtBinding.Path = this.Core.IsTransit ? new PropertyPath("TransitId") : new PropertyPath("VisitId");
vtBinding.Mode = BindingMode.TwoWay;
vtBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
BindingOperations.SetBinding(textBoxDisplayId, TextBox.TextProperty, vtBinding);
foreach (Message aMessage in this.Messages)
{
if (aMessage.MessageNotificationClass == notificationClass)
{
_message = aMessage;
break;
}
}
if (_message != null)
{
}
}
}
}

View File

@ -33,7 +33,7 @@
<MinimumRequiredVersion>3.5.1.0</MinimumRequiredVersion>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.html</WebPage>
<ApplicationRevision>2</ApplicationRevision>
<ApplicationRevision>3</ApplicationRevision>
<ApplicationVersion>3.5.3.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>

View File

@ -45,9 +45,9 @@
<ColumnDefinition Width="3*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="Von:" HorizontalAlignment="Left" />
<xctk:DateTimePicker Grid.Column="1" Grid.Row="0" Name="dateTimePickerETAFrom" Format="Custom" FormatString="dd.MM.yyyy hh:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" />
<xctk:DateTimePicker Grid.Column="1" Grid.Row="0" Name="dateTimePickerETAFrom" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" />
<Label Grid.Column="2" Grid.Row="0" Content="Bis:" HorizontalAlignment="Left" />
<xctk:DateTimePicker Grid.Column="3" Grid.Row="0" Name="dateTimePickerETATo" Format="Custom" FormatString="dd.MM.yyyy hh:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" />
<xctk:DateTimePicker Grid.Column="3" Grid.Row="0" Name="dateTimePickerETATo" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" />
</Grid>
<TextBox Grid.Column="3" Grid.Row="2" Name="textBoxTicketNr" Margin="2"/>

Binary file not shown.

View File

@ -2612,9 +2612,9 @@ namespace bsmd.ExcelReadService
else
{
reader.Conf.ConfirmText("Visit.PortOfCall", poc, ExcelReader.ReadState.FAIL);
reader.Conf.ConfirmText("Visit.PortOfCall_DK", poc, ExcelReader.ReadState.FAIL);
}
message = string.Format("Port of call missing or not found for IMO {0}", imo);
return null;
}
}
bool isValidId = bsmd.database.Util.IsVisitId(visitTransitId) ||bsmd.database.Util.IsTransitId(visitTransitId);