1: <?xml version="1.0" encoding="utf-8" ?>
2: <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
3: <CodeSnippet Format="1.0.0">
4: <Header>
5: <Title>prismcommand</Title>
6: <Shortcut>prismcommand</Shortcut>
7: <Description>Code snippet for an automatically implemented commands</Description>
8: <Author>Elite Agency</Author>
9: <SnippetTypes>
10: <SnippetType>Expansion</SnippetType>
11: </SnippetTypes>
12: </Header>
13: <Snippet>
14: <Declarations>
15: <Literal>
16: <ID>command</ID>
17: <ToolTip>Command Name</ToolTip>
18: <Default>CommandName</Default>
19: </Literal>
20: <Literal>
21: <ID>control</ID>
22: <ToolTip>Control type</ToolTip>
23: <Default>Control</Default>
24: </Literal>
25: <Literal>
26: <ID>event</ID>
27: <ToolTip>Control Event</ToolTip>
28: <Default>Event</Default>
29: </Literal>
30: </Declarations>
31: <Code Language="csharp">
32: <![CDATA[public class $command$CommandBehavior : CommandBehaviorBase<$control$>
33: {
34: public $command$CommandBehavior($control$ targetObject)
35: : base(targetObject)
36: {
37: targetObject.$event$ += (s, e) => base.ExecuteCommand();
38: }
39: }
40:
41: public static class $command$
42: {
43: public static readonly DependencyProperty $command$BehaviorProperty =
44: DependencyProperty.RegisterAttached(
45: "$command$BehaviorProperty", typeof($command$CommandBehavior),
46: typeof($command$CommandBehavior), null);
47:
48: #region CommandProperty
49:
50: public static readonly DependencyProperty CommandProperty =
51: DependencyProperty.RegisterAttached(
52: "Command", typeof(ICommand), typeof($command$),
53: new PropertyMetadata(CommandProperty_Changed));
54:
55: public static ICommand GetCommand(DependencyObject obj)
56: {
57: return (ICommand)obj.GetValue(CommandProperty);
58: }
59:
60: public static void SetCommand(DependencyObject obj, ICommand value)
61: {
62: obj.SetValue(CommandProperty, value);
63: }
64:
65: private static void CommandProperty_Changed(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
66: {
67: $control$ targetObject = dependencyObject as $control$;
68:
69: if (targetObject != null)
70: GetOrCreateBehavior(targetObject).Command = e.NewValue as ICommand;
71: }
72:
73: #endregion
74:
75: #region CommandParameterProperty
76:
77: public static readonly DependencyProperty CommandParameterProperty =
78: DependencyProperty.RegisterAttached(
79: "CommandParameter", typeof(object),
80: typeof($command$), new PropertyMetadata(CommandParameterProperty_Changed));
81:
82: public static ICommand GetCommandParameter(DependencyObject obj)
83: {
84: return (ICommand)obj.GetValue(CommandParameterProperty);
85: }
86:
87: public static void SetCommandParameter(DependencyObject obj, ICommand value)
88: {
89: obj.SetValue(CommandParameterProperty, value);
90: }
91:
92: private static void CommandParameterProperty_Changed(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
93: {
94: $control$ targetObject = dependencyObject as $control$;
95:
96: if (targetObject != null)
97: GetOrCreateBehavior(targetObject).CommandParameter = e.NewValue;
98: }
99:
100: #endregion
101:
102: private static $command$CommandBehavior GetOrCreateBehavior($control$ targetObject)
103: {
104: $command$CommandBehavior behavior = targetObject.GetValue($command$BehaviorProperty) as $command$CommandBehavior;
105:
106: if (behavior == null)
107: {
108: behavior = new $command$CommandBehavior(targetObject);
109: targetObject.SetValue($command$BehaviorProperty, behavior);
110: }
111:
112: return behavior;
113: }
114: }]]>
115: </Code>
116: </Snippet>
117: </CodeSnippet>
118: </CodeSnippets>