|
|
@ -40,11 +40,11 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference |
|
|
|
string serviceDescriptionMessage; |
|
|
|
string serviceDescriptionMessage; |
|
|
|
string namespacePrefix = String.Empty; |
|
|
|
string namespacePrefix = String.Empty; |
|
|
|
|
|
|
|
|
|
|
|
private ObservableCollection<ImageAndDescription> twoValues; |
|
|
|
ObservableCollection<ImageAndDescription> twoValues; |
|
|
|
|
|
|
|
|
|
|
|
private List<string> mruServices = new List<string>(); |
|
|
|
List<string> mruServices = new List<string>(); |
|
|
|
private string selectedService; |
|
|
|
string selectedService; |
|
|
|
private IProject project; |
|
|
|
IProject project; |
|
|
|
|
|
|
|
|
|
|
|
List<ServiceItem> items = new List <ServiceItem>(); |
|
|
|
List<ServiceItem> items = new List <ServiceItem>(); |
|
|
|
ServiceItem myItem; |
|
|
|
ServiceItem myItem; |
|
|
@ -59,72 +59,68 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference |
|
|
|
delegate void DiscoveredWebServicesHandler(DiscoveryClientProtocol protocol); |
|
|
|
delegate void DiscoveredWebServicesHandler(DiscoveryClientProtocol protocol); |
|
|
|
delegate void AuthenticationHandler(Uri uri, string authenticationType); |
|
|
|
delegate void AuthenticationHandler(Uri uri, string authenticationType); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public AddServiceReferenceViewModel(IProject project) |
|
|
|
public AddServiceReferenceViewModel(IProject project) |
|
|
|
{ |
|
|
|
{ |
|
|
|
this.project = project; |
|
|
|
this.project = project; |
|
|
|
discoverButtonContend = "Disvover"; |
|
|
|
discoverButtonContent = "Discover"; |
|
|
|
HeadLine = header1 + header2; |
|
|
|
HeadLine = header1 + header2; |
|
|
|
|
|
|
|
|
|
|
|
MruServices = ServiceReferenceHelper.AddMruList(); |
|
|
|
MruServices = ServiceReferenceHelper.AddMruList(); |
|
|
|
SelectedService = MruServices[0]; |
|
|
|
SelectedService = MruServices[0]; |
|
|
|
|
|
|
|
|
|
|
|
GoCommand = new RelayCommand(ExecuteGo,CanExecuteGo); |
|
|
|
GoCommand = new RelayCommand(ExecuteGo, CanExecuteGo); |
|
|
|
DiscoverCommand = new RelayCommand(ExecuteDiscover,CanExecuteDiscover); |
|
|
|
DiscoverCommand = new RelayCommand(ExecuteDiscover, CanExecuteDiscover); |
|
|
|
AdvancedDialogCommand = new RelayCommand(ExecuteAdvancedDialogCommand,CanExecuteAdvancedDialogCommand); |
|
|
|
AdvancedDialogCommand = new RelayCommand(ExecuteAdvancedDialogCommand, CanExecuteAdvancedDialogCommand); |
|
|
|
TwoValues = new ObservableCollection<ImageAndDescription>(); |
|
|
|
TwoValues = new ObservableCollection<ImageAndDescription>(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region Go Command
|
|
|
|
#region Go Command
|
|
|
|
|
|
|
|
|
|
|
|
public System.Windows.Input.ICommand GoCommand {get; private set;} |
|
|
|
public System.Windows.Input.ICommand GoCommand { get; private set; } |
|
|
|
|
|
|
|
|
|
|
|
private void ExecuteGo () |
|
|
|
void ExecuteGo() |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (String.IsNullOrEmpty(SelectedService)) { |
|
|
|
if (String.IsNullOrEmpty(SelectedService)) { |
|
|
|
MessageBox.Show (noUrl); |
|
|
|
MessageBox.Show(noUrl); |
|
|
|
} |
|
|
|
} |
|
|
|
ServiceDescriptionMessage = waitMessage; |
|
|
|
ServiceDescriptionMessage = waitMessage; |
|
|
|
Uri uri = new Uri(SelectedService); |
|
|
|
Uri uri = new Uri(SelectedService); |
|
|
|
StartDiscovery(uri, new DiscoveryNetworkCredential(CredentialCache.DefaultNetworkCredentials, DiscoveryNetworkCredential.DefaultAuthenticationType)); |
|
|
|
StartDiscovery(uri, new DiscoveryNetworkCredential(CredentialCache.DefaultNetworkCredentials, DiscoveryNetworkCredential.DefaultAuthenticationType)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool CanExecuteGo() |
|
|
|
private bool CanExecuteGo() |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region Discover Command
|
|
|
|
#region Discover Command
|
|
|
|
|
|
|
|
|
|
|
|
public System.Windows.Input.ICommand DiscoverCommand {get;private set;} |
|
|
|
public System.Windows.Input.ICommand DiscoverCommand { get; private set; } |
|
|
|
|
|
|
|
|
|
|
|
private bool CanExecuteDiscover () |
|
|
|
bool CanExecuteDiscover() |
|
|
|
{ |
|
|
|
{ |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void ExecuteDiscover () |
|
|
|
void ExecuteDiscover() |
|
|
|
{ |
|
|
|
{ |
|
|
|
MessageBox.Show ("<Discover> is not implemented at the Moment"); |
|
|
|
MessageBox.Show("<Discover> is not implemented at the Moment"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region AdvancedDialogCommand
|
|
|
|
#region AdvancedDialogCommand
|
|
|
|
|
|
|
|
|
|
|
|
public System.Windows.Input.ICommand AdvancedDialogCommand {get;private set;} |
|
|
|
public System.Windows.Input.ICommand AdvancedDialogCommand { get; private set; } |
|
|
|
|
|
|
|
|
|
|
|
private bool CanExecuteAdvancedDialogCommand () |
|
|
|
bool CanExecuteAdvancedDialogCommand() |
|
|
|
{ |
|
|
|
{ |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void ExecuteAdvancedDialogCommand () |
|
|
|
void ExecuteAdvancedDialogCommand() |
|
|
|
{ |
|
|
|
{ |
|
|
|
var vm = new AdvancedServiceViewModel(); |
|
|
|
var vm = new AdvancedServiceViewModel(); |
|
|
|
var view = new AdvancedServiceDialog(); |
|
|
|
var view = new AdvancedServiceDialog(); |
|
|
@ -134,7 +130,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference |
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region discover service Code from Matt
|
|
|
|
#region discover service Code from Matt
|
|
|
|
|
|
|
|
|
|
|
|
void StartDiscovery(Uri uri, DiscoveryNetworkCredential credential) |
|
|
|
void StartDiscovery(Uri uri, DiscoveryNetworkCredential credential) |
|
|
@ -155,7 +150,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference |
|
|
|
/// completed.
|
|
|
|
/// completed.
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
///
|
|
|
|
///
|
|
|
|
|
|
|
|
|
|
|
|
void DiscoveryCompleted(IAsyncResult result) |
|
|
|
void DiscoveryCompleted(IAsyncResult result) |
|
|
|
{ |
|
|
|
{ |
|
|
|
AsyncDiscoveryState state = (AsyncDiscoveryState)result.AsyncState; |
|
|
|
AsyncDiscoveryState state = (AsyncDiscoveryState)result.AsyncState; |
|
|
@ -189,7 +183,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// Stops any outstanding asynchronous discovery requests.
|
|
|
|
/// Stops any outstanding asynchronous discovery requests.
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
@ -211,7 +204,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void AuthenticateUser(Uri uri, string authenticationType) |
|
|
|
void AuthenticateUser(Uri uri, string authenticationType) |
|
|
|
{ |
|
|
|
{ |
|
|
|
DiscoveryNetworkCredential credential = (DiscoveryNetworkCredential)credentialCache.GetCredential(uri, authenticationType); |
|
|
|
DiscoveryNetworkCredential credential = (DiscoveryNetworkCredential)credentialCache.GetCredential(uri, authenticationType); |
|
|
@ -226,7 +218,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void AddCredential(Uri uri, DiscoveryNetworkCredential credential) |
|
|
|
void AddCredential(Uri uri, DiscoveryNetworkCredential credential) |
|
|
|
{ |
|
|
|
{ |
|
|
|
NetworkCredential matchedCredential = credentialCache.GetCredential(uri, credential.AuthenticationType); |
|
|
|
NetworkCredential matchedCredential = credentialCache.GetCredential(uri, credential.AuthenticationType); |
|
|
@ -236,7 +227,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference |
|
|
|
credentialCache.Add(uri, credential.AuthenticationType, credential); |
|
|
|
credentialCache.Add(uri, credential.AuthenticationType, credential); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void DiscoveredWebServices(DiscoveryClientProtocol protocol) |
|
|
|
void DiscoveredWebServices(DiscoveryClientProtocol protocol) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (protocol != null) { |
|
|
|
if (protocol != null) { |
|
|
@ -247,8 +237,8 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference |
|
|
|
serviceDescriptionCollection.Count, |
|
|
|
serviceDescriptionCollection.Count, |
|
|
|
discoveryUri); |
|
|
|
discoveryUri); |
|
|
|
DefaultNameSpace = GetDefaultNamespace(); |
|
|
|
DefaultNameSpace = GetDefaultNamespace(); |
|
|
|
FillItems (serviceDescriptionCollection); |
|
|
|
FillItems(serviceDescriptionCollection); |
|
|
|
var referenceName = ServiceReferenceHelper.GetReferenceName(discoveryUri); |
|
|
|
string referenceName = ServiceReferenceHelper.GetReferenceName(discoveryUri); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -269,84 +259,85 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference |
|
|
|
|
|
|
|
|
|
|
|
public string Title |
|
|
|
public string Title |
|
|
|
{ |
|
|
|
{ |
|
|
|
get {return title;} |
|
|
|
get { return title; } |
|
|
|
set {title = value; |
|
|
|
set { |
|
|
|
base.RaisePropertyChanged(() =>Title); |
|
|
|
title = value; |
|
|
|
|
|
|
|
base.RaisePropertyChanged(() => Title); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public string HeadLine { get; set; } |
|
|
|
|
|
|
|
|
|
|
|
public string HeadLine {get; set;} |
|
|
|
string discoverButtonContent; |
|
|
|
|
|
|
|
|
|
|
|
private string discoverButtonContend; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public string DiscoverButtonContend { |
|
|
|
public string DiscoverButtonContent { |
|
|
|
get { return discoverButtonContend; } |
|
|
|
get { return discoverButtonContent; } |
|
|
|
set { discoverButtonContend = value; |
|
|
|
set { |
|
|
|
base.RaisePropertyChanged(() =>DiscoverButtonContend);} |
|
|
|
discoverButtonContent = value; |
|
|
|
|
|
|
|
base.RaisePropertyChanged(() => DiscoverButtonContent); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<string> MruServices { |
|
|
|
public List<string> MruServices { |
|
|
|
get { |
|
|
|
get { return mruServices; } |
|
|
|
return mruServices; } |
|
|
|
set { |
|
|
|
set { mruServices = value; |
|
|
|
mruServices = value; |
|
|
|
base.RaisePropertyChanged(() =>MruServices); |
|
|
|
base.RaisePropertyChanged(() => MruServices); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public string SelectedService { |
|
|
|
public string SelectedService { |
|
|
|
get { return selectedService; } |
|
|
|
get { return selectedService; } |
|
|
|
set { selectedService = value; |
|
|
|
set { |
|
|
|
base.RaisePropertyChanged(() =>SelectedService);} |
|
|
|
selectedService = value; |
|
|
|
|
|
|
|
base.RaisePropertyChanged(() => SelectedService); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List <ServiceItem> ServiceItems { |
|
|
|
public List <ServiceItem> ServiceItems { |
|
|
|
get {return items; } |
|
|
|
get { return items; } |
|
|
|
set { |
|
|
|
set { |
|
|
|
items = value; |
|
|
|
items = value; |
|
|
|
base.RaisePropertyChanged(() =>ServiceItems); |
|
|
|
base.RaisePropertyChanged(() => ServiceItems); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ServiceItem ServiceItem { |
|
|
|
public ServiceItem ServiceItem { |
|
|
|
get { return myItem; } |
|
|
|
get { return myItem; } |
|
|
|
set { myItem = value; |
|
|
|
set { |
|
|
|
|
|
|
|
myItem = value; |
|
|
|
UpdateListView(); |
|
|
|
UpdateListView(); |
|
|
|
base.RaisePropertyChanged(() =>ServiceItem); |
|
|
|
base.RaisePropertyChanged(() => ServiceItem); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public string ServiceDescriptionMessage { |
|
|
|
public string ServiceDescriptionMessage { |
|
|
|
get { return serviceDescriptionMessage; } |
|
|
|
get { return serviceDescriptionMessage; } |
|
|
|
set { serviceDescriptionMessage = value; |
|
|
|
set { |
|
|
|
base.RaisePropertyChanged(() =>ServiceDescriptionMessage); |
|
|
|
serviceDescriptionMessage = value; |
|
|
|
|
|
|
|
base.RaisePropertyChanged(() => ServiceDescriptionMessage); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public string DefaultNameSpace { |
|
|
|
public string DefaultNameSpace { |
|
|
|
get { return defaultNameSpace; } |
|
|
|
get { return defaultNameSpace; } |
|
|
|
set { defaultNameSpace = value; |
|
|
|
set { |
|
|
|
base.RaisePropertyChanged(() =>DefaultNameSpace);} |
|
|
|
defaultNameSpace = value; |
|
|
|
|
|
|
|
base.RaisePropertyChanged(() => DefaultNameSpace); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ObservableCollection<ImageAndDescription> TwoValues { |
|
|
|
public ObservableCollection<ImageAndDescription> TwoValues { |
|
|
|
get { return twoValues; } |
|
|
|
get { return twoValues; } |
|
|
|
set { |
|
|
|
set { |
|
|
|
twoValues = value; |
|
|
|
twoValues = value; |
|
|
|
base.RaisePropertyChanged(() =>TwoValues); |
|
|
|
base.RaisePropertyChanged(() => TwoValues); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//http://mikehadlow.blogspot.com/2006/06/simple-wsdl-object.html
|
|
|
|
//http://mikehadlow.blogspot.com/2006/06/simple-wsdl-object.html
|
|
|
|
|
|
|
|
|
|
|
|
void UpdateListView () |
|
|
|
void UpdateListView() |
|
|
|
{ |
|
|
|
{ |
|
|
|
ServiceDescription desc = null; |
|
|
|
ServiceDescription desc = null; |
|
|
|
TwoValues.Clear(); |
|
|
|
TwoValues.Clear(); |
|
|
@ -355,41 +346,35 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference |
|
|
|
var tv = new ImageAndDescription(PresentationResourceService.GetBitmapSource("Icons.16x16.Interface"), |
|
|
|
var tv = new ImageAndDescription(PresentationResourceService.GetBitmapSource("Icons.16x16.Interface"), |
|
|
|
desc.RetrievalUrl); |
|
|
|
desc.RetrievalUrl); |
|
|
|
TwoValues.Add(tv); |
|
|
|
TwoValues.Add(tv); |
|
|
|
} |
|
|
|
} else if(ServiceItem.Tag is PortType) { |
|
|
|
else if(ServiceItem.Tag is PortType) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
PortType portType = (PortType)ServiceItem.Tag; |
|
|
|
PortType portType = (PortType)ServiceItem.Tag; |
|
|
|
foreach (Operation op in portType.Operations) |
|
|
|
foreach (Operation op in portType.Operations) { |
|
|
|
{ |
|
|
|
|
|
|
|
TwoValues.Add(new ImageAndDescription(PresentationResourceService.GetBitmapSource("Icons.16x16.Method"), |
|
|
|
TwoValues.Add(new ImageAndDescription(PresentationResourceService.GetBitmapSource("Icons.16x16.Method"), |
|
|
|
op.Name)); |
|
|
|
op.Name)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void FillItems(ServiceDescriptionCollection descriptions) |
|
|
|
void FillItems (ServiceDescriptionCollection descriptions) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
foreach (ServiceDescription element in descriptions) |
|
|
|
foreach(ServiceDescription element in descriptions) { |
|
|
|
{ |
|
|
|
Add(element); |
|
|
|
Add (element); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Add(ServiceDescription description) |
|
|
|
void Add(ServiceDescription description) |
|
|
|
{ |
|
|
|
{ |
|
|
|
List<ServiceItem> items = new List<ServiceItem>(); |
|
|
|
List<ServiceItem> items = new List<ServiceItem>(); |
|
|
|
var name = ServiceReferenceHelper.GetServiceName(description); |
|
|
|
var name = ServiceReferenceHelper.GetServiceName(description); |
|
|
|
var rootNode = new ServiceItem(null,name); |
|
|
|
var rootNode = new ServiceItem(null, name); |
|
|
|
rootNode.Tag = description; |
|
|
|
rootNode.Tag = description; |
|
|
|
|
|
|
|
|
|
|
|
foreach(Service service in description.Services) { |
|
|
|
foreach(Service service in description.Services) { |
|
|
|
var serviceNode = new ServiceItem(null,service.Name); |
|
|
|
var serviceNode = new ServiceItem(null, service.Name); |
|
|
|
serviceNode.Tag = service; |
|
|
|
serviceNode.Tag = service; |
|
|
|
items.Add(serviceNode); |
|
|
|
items.Add(serviceNode); |
|
|
|
foreach (PortType portType in description.PortTypes) { |
|
|
|
foreach (PortType portType in description.PortTypes) { |
|
|
|
var portNode = new ServiceItem(PresentationResourceService.GetBitmapSource("Icons.16x16.Interface"),portType.Name); |
|
|
|
var portNode = new ServiceItem(PresentationResourceService.GetBitmapSource("Icons.16x16.Interface"), portType.Name); |
|
|
|
portNode.Tag = portType; |
|
|
|
portNode.Tag = portType; |
|
|
|
serviceNode.SubItems.Add(portNode); |
|
|
|
serviceNode.SubItems.Add(portNode); |
|
|
|
} |
|
|
|
} |
|
|
@ -406,43 +391,39 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class ImageAndDescription |
|
|
|
public class ImageAndDescription |
|
|
|
{ |
|
|
|
{ |
|
|
|
public ImageAndDescription(BitmapSource bitmapSource,string description) |
|
|
|
public ImageAndDescription(BitmapSource bitmapSource, string description) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Image = bitmapSource; |
|
|
|
Image = bitmapSource; |
|
|
|
Description = description; |
|
|
|
Description = description; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public BitmapSource Image {get;set;} |
|
|
|
public BitmapSource Image { get; set; } |
|
|
|
public string Description {get;set;} |
|
|
|
public string Description { get; set; } |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class ServiceItem : ImageAndDescription |
|
|
|
|
|
|
|
|
|
|
|
public class ServiceItem:ImageAndDescription |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
public ServiceItem (BitmapSource bitmapSource,string description):base(bitmapSource,description) |
|
|
|
public ServiceItem(BitmapSource bitmapSource, string description) : base(bitmapSource, description) |
|
|
|
{ |
|
|
|
{ |
|
|
|
SubItems = new List<ServiceItem>(); |
|
|
|
SubItems = new List<ServiceItem>(); |
|
|
|
} |
|
|
|
} |
|
|
|
public object Tag {get;set;} |
|
|
|
public object Tag { get; set; } |
|
|
|
public List<ServiceItem> SubItems {get;set;} |
|
|
|
public List<ServiceItem> SubItems { get; set; } |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public class CheckableImageAndDescription :ImageAndDescription |
|
|
|
public class CheckableImageAndDescription : ImageAndDescription |
|
|
|
{ |
|
|
|
{ |
|
|
|
public CheckableImageAndDescription(BitmapSource bitmapSource,string description):base(bitmapSource,description) |
|
|
|
public CheckableImageAndDescription(BitmapSource bitmapSource, string description) : base(bitmapSource, description) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private bool itemChecked; |
|
|
|
bool itemChecked; |
|
|
|
|
|
|
|
|
|
|
|
public bool ItemChecked { |
|
|
|
public bool ItemChecked { |
|
|
|
get { return itemChecked; } |
|
|
|
get { return itemChecked; } |
|
|
|
set { itemChecked = value;} |
|
|
|
set { itemChecked = value; } |
|
|
|
// base.RaisePropertyChanged(() =>IsChecked);}
|
|
|
|
// base.RaisePropertyChanged(() =>IsChecked);}
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|