WPF NotifyIcon 1.0.2

--------------------
FIX   DataContext was not properly updated on ContextMenus (and probably ToolTips, Popups, and Balloons) if the DC was previously null.

git-svn-id: https://svn.evolvesoftware.ch/repos/evolve.net/WPF/NotifyIcon@110 9f600761-6f11-4665-b6dc-0185e9171623
This commit is contained in:
Philipp Sumi
2009-05-18 17:37:34 +00:00
parent aa4e7d00b3
commit d6fe6cbf76
6 changed files with 26 additions and 25 deletions

View File

@@ -5,7 +5,16 @@ Contact and Information: http://www.hardcodet.net
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
1.0.1 1.0.2 (2009.05.18)
*****
FIX Late-bound DataContext did not coerce properly with ContextMenu, thus
assigning it the TaskbarIcon rather than the TaskbarIcon's DataContext.
Thanks Nic Pillinger for discovering the issue.
----------------------------------------------------------------------------
1.0.1 (2009.05.15)
***** *****
CHG DataContext is also assigned to ContextMenu (thanks Nic Pilllinger), CHG DataContext is also assigned to ContextMenu (thanks Nic Pilllinger),
and properly coerced for ToolTips and Popups. Also checks whether and properly coerced for ToolTips and Popups. Also checks whether

View File

@@ -53,5 +53,5 @@ using System.Windows.Markup;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.1.0")] [assembly: AssemblyVersion("1.0.2.0")]
[assembly: AssemblyFileVersion("1.0.1.0")] [assembly: AssemblyFileVersion("1.0.2.0")]

View File

@@ -568,7 +568,13 @@ namespace Hardcodet.Wpf.TaskbarNotification
/// </summary> /// </summary>
private void UpdateDataContext(FrameworkElement target, object oldDataContextValue, object newDataContextValue) private void UpdateDataContext(FrameworkElement target, object oldDataContextValue, object newDataContextValue)
{ {
if (target != null && !target.IsDataContextDataBound() && Equals(oldDataContextValue, target.DataContext)) //if there is no target or it's data context is determined through a binding
//of its own, keep it
if (target == null || target.IsDataContextDataBound()) return;
//if the target's data context is the NotifyIcon's old DataContext or the NotifyIcon itself,
//update it
if (ReferenceEquals(this, target.DataContext) || Equals(oldDataContextValue, target.DataContext))
{ {
//assign own data context, if available. If there is no data //assign own data context, if available. If there is no data
//context at all, assign NotifyIcon itself. //context at all, assign NotifyIcon itself.

View File

@@ -31,7 +31,7 @@
FontStyle="Italic" FontStyle="Italic"
FontWeight="Bold" FontWeight="Bold"
TextWrapping="Wrap"><Run TextWrapping="Wrap"><Run
Text="WPF NotifyIcon 1.0.1 - Samples" /></TextBlock> Text="WPF NotifyIcon 1.0.2 - Samples" /></TextBlock>
<Button <Button
HorizontalAlignment="Left" HorizontalAlignment="Left"
Margin="10,133,0,0" Margin="10,133,0,0"
@@ -162,10 +162,10 @@
<LineBreak/> <LineBreak/>
<LineBreak/> <LineBreak/>
<LineBreak/> <LineBreak/>
<TextBlock FontWeight="Bold"> <TextBlock>
<Run FontWeight="Bold" Text="Love it or hate it? Please let me know and "/> <Run Text="Love it or hate it? Please let me know and "/>
<Hyperlink NavigateUri="http://www.codeproject.com/KB/WPF/wpf_notifyicon.aspx"> <Hyperlink NavigateUri="http://www.codeproject.com/KB/WPF/wpf_notifyicon.aspx">
<Run Text="rate the project"/> <Run FontWeight="Bold" Text="rate the project"/>
</Hyperlink> </Hyperlink>
<Run Text=" - thanks!" /> <Run Text=" - thanks!" />
</TextBlock> </TextBlock>

View File

@@ -1,17 +1,5 @@
using System; using System.Diagnostics;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows; 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.Shapes;
using Hardcodet.Wpf.TaskbarNotification;
using Samples.Tutorials; using Samples.Tutorials;
using Samples.Tutorials.Balloons; using Samples.Tutorials.Balloons;
using Samples.Tutorials.Commands; using Samples.Tutorials.Commands;
@@ -34,7 +22,6 @@ namespace Samples
} }
/// <summary> /// <summary>
/// Sets <see cref="Window.WindowStartupLocation"/> and /// Sets <see cref="Window.WindowStartupLocation"/> and
/// <see cref="Window.Owner"/> properties of a dialog that /// <see cref="Window.Owner"/> properties of a dialog that
@@ -109,6 +96,5 @@ namespace Samples
Process.Start(e.Uri.ToString()); Process.Start(e.Uri.ToString());
e.Handled = true; e.Handled = true;
} }
} }
} }

View File

@@ -396,7 +396,7 @@
FontWeight="Bold" FontWeight="Bold"
FontSize="16" FontSize="16"
HorizontalAlignment="Left"><Run HorizontalAlignment="Left"><Run
Text="WPF NotifyIcon 1.0.1" /></TextBlock> Text="WPF NotifyIcon 1.0.2" /></TextBlock>
<TextBlock <TextBlock
Margin="12,57.62,15.5,0" Margin="12,57.62,15.5,0"
VerticalAlignment="Top" VerticalAlignment="Top"