From 0d742ce90f9eea664e85e226b99bf965767c81b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kon=C3=AD=C4=8Dek?= <martin.konicek@gmail.com> Date: Wed, 2 Jun 2010 18:25:32 +0000 Subject: [PATCH] Commented out the style for SharpDevelopCompletionWindow so that the "Set property 'System.Windows.Setter.Property' threw an exception.' Value cannot be null." crash in ctor of CompletionWindow dissapears. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5896 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Src/SharpDevelopCompletionWindow.cs | 6 ++++++ .../Src/SharpDevelopCompletionWindow.xaml | 9 +-------- .../AvalonEdit.AddIn/themes/generic.xaml | 16 ++++++++++++++++ .../CodeCompletion/CompletionList.cs | 12 ++++++------ .../CodeCompletion/CompletionList.xaml | 16 ++++------------ .../CodeCompletion/CompletionListBox.cs | 6 +++--- .../CodeCompletion/CompletionWindow.cs | 6 +++--- 7 files changed, 39 insertions(+), 32 deletions(-) diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SharpDevelopCompletionWindow.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SharpDevelopCompletionWindow.cs index b48f1273df..3454af814b 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SharpDevelopCompletionWindow.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SharpDevelopCompletionWindow.cs @@ -26,6 +26,12 @@ namespace ICSharpCode.AvalonEdit.AddIn /// </summary> public class SharpDevelopCompletionWindow : CompletionWindow, ICompletionListWindow { + /*static SharpDevelopCompletionWindow() + { + DefaultStyleKeyProperty.OverrideMetadata(typeof(SharpDevelopCompletionWindow), + new FrameworkPropertyMetadata(typeof(SharpDevelopCompletionWindow))); + }*/ + public ICompletionItem SelectedItem { get { return ((CodeCompletionDataAdapter)this.CompletionList.SelectedItem).Item; diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SharpDevelopCompletionWindow.xaml b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SharpDevelopCompletionWindow.xaml index 8407b3e69a..9d49864cb6 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SharpDevelopCompletionWindow.xaml +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/SharpDevelopCompletionWindow.xaml @@ -3,12 +3,5 @@ xmlns:core="http://icsharpcode.net/sharpdevelop/core" xmlns:local="clr-namespace:ICSharpCode.AvalonEdit.AddIn" > - <Style TargetType="{x:Type local:SharpDevelopCompletionWindow}"> - <Setter Property="EmptyContent"> - <Setter.Value> - <TextBlock Text="{core:Localize ICSharpCode.AvalonEdit.AddIn.SharpDevelopCompletionWindow.EmptyText}" - FontStyle="Italic" Foreground="Gray"></TextBlock> - </Setter.Value> - </Setter> - </Style> + </ResourceDictionary> \ No newline at end of file diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/themes/generic.xaml b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/themes/generic.xaml index 3124eeebfa..3c2470e03a 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/themes/generic.xaml +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/themes/generic.xaml @@ -2,10 +2,26 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:ICSharpCode.AvalonEdit.AddIn" xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets" + xmlns:core="http://icsharpcode.net/sharpdevelop/core" > + <!-- <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/ICSharpCode.AvalonEdit.AddIn;component/Src/SharpDevelopCompletionWindow.xaml"/> </ResourceDictionary.MergedDictionaries> + --> + + <!-- + <Style TargetType="{x:Type local:SharpDevelopCompletionWindow}"> + <Setter Property="EmptyTemplate"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type local:SharpDevelopCompletionWindow}"> + <TextBlock Text="{core:Localize ICSharpCode.AvalonEdit.AddIn.SharpDevelopCompletionWindow.EmptyText}" + FontStyle="Italic" Foreground="Gray"></TextBlock> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + --> <Style TargetType="{x:Type local:SharpDevelopTextEditor}"> <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" /> diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionList.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionList.cs index 8f13d6a7bf..3e0e5bf572 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionList.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionList.cs @@ -39,19 +39,19 @@ namespace ICSharpCode.AvalonEdit.CodeCompletion } /// <summary> - /// Dependency property for <see cref="EmptyContent" />. + /// Dependency property for <see cref="EmptyTemplate" />. /// </summary> - public static readonly DependencyProperty EmptyContentProperty = - DependencyProperty.Register("EmptyContent", typeof(object), typeof(CompletionList), + public static readonly DependencyProperty EmptyTemplateProperty = + DependencyProperty.Register("EmptyTemplate", typeof(ControlTemplate), typeof(CompletionList), new FrameworkPropertyMetadata()); /// <summary> /// Content of EmptyTemplate will be shown when CompletionList contains no items. /// If EmptyTemplate is null, nothing will be shown. /// </summary> - public object EmptyContent { - get { return (object)GetValue(EmptyContentProperty); } - set { SetValue(EmptyContentProperty, value); } + public ControlTemplate EmptyTemplate { + get { return (ControlTemplate)GetValue(EmptyTemplateProperty); } + set { SetValue(EmptyTemplateProperty, value); } } /// <summary> diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionList.xaml b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionList.xaml index 48b2bdf0c6..61d7fa2acf 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionList.xaml +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionList.xaml @@ -40,13 +40,7 @@ Binding="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=HasItems}" Value="False" > - <Setter Property="Template"> - <Setter.Value> - <ControlTemplate TargetType="{x:Type cc:CompletionListBox}"> - <ContentPresenter Content="{TemplateBinding EmptyTemplate}"></ContentPresenter> - </ControlTemplate> - </Setter.Value> - </Setter> + <Setter Property="Template" Value="{Binding EmptyTemplate}" /> </DataTrigger> </Style.Triggers> </Style> @@ -55,7 +49,9 @@ <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type cc:CompletionList}"> - <cc:CompletionListBox x:Name="PART_ListBox" ItemContainerStyle="{StaticResource CompletionListBoxItem}"> + <cc:CompletionListBox x:Name="PART_ListBox" + ItemContainerStyle="{StaticResource CompletionListBoxItem}" + EmptyTemplate="{TemplateBinding EmptyTemplate}"> <ItemsControl.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> @@ -64,10 +60,6 @@ </StackPanel> </DataTemplate> </ItemsControl.ItemTemplate> - <cc:CompletionListBox.EmptyTemplate> - <!-- EmptyContent provided by user will be displayed in case the list is empty --> - <ContentPresenter Content="{TemplateBinding EmptyContent}"></ContentPresenter> - </cc:CompletionListBox.EmptyTemplate> </cc:CompletionListBox> </ControlTemplate> </Setter.Value> diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionListBox.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionListBox.cs index 7ca2c2a8be..76077b66ba 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionListBox.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionListBox.cs @@ -29,14 +29,14 @@ namespace ICSharpCode.AvalonEdit.CodeCompletion /// Dependency property for <see cref="EmptyTemplate" />. /// </summary> public static readonly DependencyProperty EmptyTemplateProperty = - DependencyProperty.Register("EmptyTemplate", typeof(object), typeof(CompletionListBox), + DependencyProperty.Register("EmptyTemplate", typeof(ControlTemplate), typeof(CompletionListBox), new FrameworkPropertyMetadata()); /// <summary> /// Content of EmptyTemplate will be shown when CompletionListBox contains no items. /// If EmptyTemplate is null, nothing will be shown. /// </summary> - public object EmptyTemplate { - get { return (object)GetValue(EmptyTemplateProperty); } + public ControlTemplate EmptyTemplate { + get { return (ControlTemplate)GetValue(EmptyTemplateProperty); } set { SetValue(EmptyTemplateProperty, value); } } diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionWindow.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionWindow.cs index 7998df060e..1eeda222d2 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionWindow.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/CodeCompletion/CompletionWindow.cs @@ -53,12 +53,12 @@ namespace ICSharpCode.AvalonEdit.CodeCompletion /// <summary> /// Content that will be shown when the CompletionWindow contains no items. /// </summary> - public object EmptyContent { + public ControlTemplate EmptyTemplate { get { - return this.completionList.EmptyContent; + return this.completionList.EmptyTemplate; } set { - this.completionList.EmptyContent = value; + this.completionList.EmptyTemplate = value; } }