Browse Source

Icon in DataTemplate

pull/30/head
PeterForstmeier 14 years ago
parent
commit
49e09b7f5c
  1. 15
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml
  2. 28
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs
  3. 15
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs

15
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml

@ -20,23 +20,28 @@
<ComboBox.ItemTemplate> <ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<Image VerticalAlignment="Center" Height="15" Margin="3,0,5,0" <Image VerticalAlignment="Center" Height="15" Margin="3,0,5,0"
Source="{Binding Item1, Source="{Binding Item1,
Converter={StaticResource imageConverter}}"></Image> Converter={StaticResource imageConverter}}"></Image>
<TextBlock VerticalAlignment="Center" Text="{Binding Item2}"></TextBlock>
<TextBlock VerticalAlignment="Center" Text="{Binding Item2}"></TextBlock>
</StackPanel> </StackPanel>
</DataTemplate> </DataTemplate>
</ComboBox.ItemTemplate> </ComboBox.ItemTemplate>
</ComboBox> </ComboBox>
</DataTemplate> </DataTemplate>
<DataTemplate x:Key="txtTemplate"> <DataTemplate x:Key="txtTemplate">
<TextBox Text="DDDDDDDDDDDD"></TextBox> <StackPanel Orientation="Horizontal">
<Image VerticalAlignment="Center" Height="15" Margin="3,0,5,0"
Source="{Binding MixedModeIcon}"></Image>
<TextBlock Text="{Binding MixedModeText}"></TextBlock>
</StackPanel>
</DataTemplate> </DataTemplate>

28
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs

@ -50,8 +50,8 @@ namespace ICSharpCode.CodeAnalysis
{ {
InitializeComponent(); InitializeComponent();
DataContext = this; DataContext = this;
bla.Add(Tuple.Create<Icon,string,int>(SystemIcons.Warning,"Warning",0)); bla.Add(Tuple.Create<Icon,string,int>(SystemIcons.Warning,ResourceService.GetString("Global.WarningText"),0));
bla.Add(Tuple.Create<Icon,string,int>(SystemIcons.Error,"Error",1)); bla.Add(Tuple.Create<Icon,string,int>(SystemIcons.Error,ResourceService.GetString("Global.ErrorText"),1));
// bla.Add(Tuple.Create<Icon,string>(null,"None")); // bla.Add(Tuple.Create<Icon,string>(null,"None"));
} }
@ -334,15 +334,25 @@ namespace ICSharpCode.CodeAnalysis
public override DataTemplate SelectTemplate(object item, DependencyObject container) public override DataTemplate SelectTemplate(object item, DependencyObject container)
{ {
// var element = item as RuleTreeNode; var rule = item as RuleTreeNode;
// if (element != null) {
// return ComboTemplate; if (rule != null) {
// } else { return ComboTemplate;
// return TxtTemplate; }
// }
var cat = item as CategoryTreeNode;
if (cat != null) {
if (!cat.NewErrorState.HasValue) {
//Mixed Mode
return TxtTemplate;
} else {
//All childs has same value
return ComboTemplate;
}
}
return ComboTemplate; return ComboTemplate;
} }
} }

15
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs

@ -8,7 +8,10 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Windows.Media;
using ICSharpCode.Core;
using ICSharpCode.Core.Presentation;
using ICSharpCode.TreeView; using ICSharpCode.TreeView;
namespace ICSharpCode.CodeAnalysis namespace ICSharpCode.CodeAnalysis
@ -53,9 +56,13 @@ namespace ICSharpCode.CodeAnalysis
public class CategoryTreeNode : BaseTree public class CategoryTreeNode : BaseTree
{ {
internal FxCopCategory category; internal FxCopCategory category;
private string mixedModeText;
private ImageSource mixedModeIcon;
public CategoryTreeNode(FxCopCategory category,IEnumerable<Tuple<Icon,string,int>> bla):base(bla) public CategoryTreeNode(FxCopCategory category,IEnumerable<Tuple<Icon,string,int>> bla):base(bla)
{ {
mixedModeText = StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.WarningErrorMixed}");
mixedModeIcon = PresentationResourceService.GetBitmapSource("Icons.16x16.ClosedFolderBitmap");
this.category = category; this.category = category;
foreach (FxCopRule rule in category.Rules) { foreach (FxCopRule rule in category.Rules) {
this.Children.Add(new RuleTreeNode(rule,bla)); this.Children.Add(new RuleTreeNode(rule,bla));
@ -83,6 +90,14 @@ namespace ICSharpCode.CodeAnalysis
} }
} }
public ImageSource MixedModeIcon {
get { return mixedModeIcon; }
}
public string MixedModeText
{
get {return mixedModeText;}
}
public Nullable<bool> NewErrorState { public Nullable<bool> NewErrorState {

Loading…
Cancel
Save