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),
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
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.1.0")]
[assembly: AssemblyFileVersion("1.0.1.0")]
[assembly: AssemblyVersion("1.0.2.0")]
[assembly: AssemblyFileVersion("1.0.2.0")]

View File

@@ -568,7 +568,13 @@ namespace Hardcodet.Wpf.TaskbarNotification
/// </summary>
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
//context at all, assign NotifyIcon itself.

View File

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

View File

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

View File

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