WpfExample/TimeScheduler/TimeScheduler/Common/BindingProxy.cs

38 lines
1.4 KiB
C#

using System.Windows;
namespace TimeScheduler.Common
{
/// <summary>Hilfsklasse, mit der man in andere Datenkontexte greifen kann</summary>
/// <example>
/// Vorbereitung:
/// <code language="xaml">
/// &lt;FrameworkElement.Resources&gt;
/// &lt;c:BindingProxy x:Key="proxy" Data="{Binding}"&gt;
/// &lt;/FrameworkElement.Resources&gt;
/// </code>
/// Verwendung an einer anderen Stelle:
/// <code language="xaml">
/// &lt;FrameworkElement Property="{Binding Source={StaticResource proxy},Path=VMProperty}"&gt;
/// </code>
/// </example>
class BindingProxy : Freezable
{
#region Konstruktion
/// <summary>Standard-Konstruktor</summary>
public BindingProxy() { }
#endregion
#region Überschreibungen
/// <summary>Ermittelt das Hauptobjekt</summary>
/// <returns>Ein neues Hauptobjekt</returns>
protected override Freezable CreateInstanceCore() { return new BindingProxy(); }
#endregion
#region Eigenschaften
/// <summary>Getter/Setter für <see cref="DataProperty"/></summary>
public object Data { get { return GetValue(DataProperty); } set { SetValue(DataProperty, value); } }
/// <summary>Eigenschaft in der der Datenkontext gebunden wird</summary>
public static readonly DependencyProperty DataProperty = DependencyProperty.Register("Data", typeof(object), typeof(BindingProxy), new PropertyMetadata(null));
#endregion
}
}