aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Editors/IParameterized.cs
blob: d0a32f209d4210374d31e4bc8b3c22c26be5e609 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tango.Editors
{
    /// <summary>
    /// Represents a component that exposes some of it's properties as an observable collection of <see cref="ParameterItem"/> which can be bound to UI controls.
    /// <para>
    /// Use the <see cref="T:WpfVideoTools.Editors.ParameterizedEditor"/> to automatically display and edit the collection of parameters.
    /// </para>
    /// <para>
    /// See
    /// </para>
    /// <list type="bullet">
    /// <item><see cref="T:WpfVideoTools.Editors.ParameterizedEditor"/></item>
    /// <item><see cref="T:WpfVideoTools.Editors.IParameterItemEditor"/></item>
    /// </list>
    /// </summary>
    /// <example>
    /// <para class="example-title">
    /// <img class="exampleIcon" src="../Icons/CodeExample.png" />
    /// <i>
    /// The following example demonstrates how to implement the IParameterized interface, implement a custom parameter editor and use the ParameterizedEditor to display/edit the object.
    /// </i>
    /// </para>
    /// <para><img class="exampleImage" src="../Media/ParameterizedEditorExample.png" /></para>
    /// <i>Implement IParameterized.</i>
    /// <code lang="C#" source="../FullAPIExamples/Examples/Core/IParameterizedExample.cs" title="Implement IParameterized interface." />
    /// <i>Custom editor.</i>
    /// <code lang="XAML" source="../FullAPIExamples/Examples/Core/CustomEditor.xaml" title="Implement custom editor." />
    /// <i>Custom editor code behind.</i>
    /// <code lang="C#" source="../FullAPIExamples/Examples/Core/CustomEditor.xaml.cs" title="Implement custom editor." />
    /// <i>Use the ParameterizedEditor to display the parameterized object.</i>
    /// <code lang="XAML" source="../FullAPIExamples/Examples/Core/ParameterizedEditorExample.xaml" title="Use ParameterizedEditor." />
    /// <i>Code-Behind.</i>
    /// <code lang="C#" source="../FullAPIExamples/Examples/Core/ParameterizedEditorExample.xaml.cs" title="Use ParameterizedEditor." />
    /// </example>
    /// <seealso cref="T:WpfVideoTools.Editors.ParameterizedEditor" />
    /// <seealso cref="T:WpfVideoTools.Editors.IParameterItemEditor" />
    public interface IParameterized
    {
        /// <summary>
        /// Gets a bind-able observable collection of the component properties.
        /// </summary>
        [ParameterIgnore]
        ReadOnlyObservableCollection<ParameterItem> Parameters { get; set; }
    }
}