using System.Windows; using System.Windows.Controls; using ActiproSoftware.Windows.Controls.Grids; using ActiproSoftware.Windows.Controls.Grids.PropertyData; namespace JD.Rosetta.Module.OptionsGrid { /// /// Interaction logic for ExportOptionsPropertyGrid.xaml /// public partial class ExportOptionsPropertyGrid : UserControl { public ExportOptionsPropertyGrid() { InitializeComponent(); } #region Dependency properties public static readonly DependencyProperty DataObjectProperty = DependencyProperty.Register("DataObject", typeof(object), typeof(ExportOptionsPropertyGrid), new PropertyMetadata(default(object), DataObjectProperty_PropertyChangedCallback)); // Need to do this rather than a binding to get it working for some reason private static void DataObjectProperty_PropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) { var view = (ExportOptionsPropertyGrid)d; view.OptionsGrid.DataObject = e.NewValue as object; } public object DataObject { get => (object) GetValue(DataObjectProperty); set => SetValue(DataObjectProperty, value); } public static readonly DependencyProperty PropertyFactoryProperty = DependencyProperty.Register("PropertyFactory", typeof(IDataFactory), typeof(ExportOptionsPropertyGrid), new PropertyMetadata(null, PropertyFactoryProperty_PropertyChangedCallback)); // Need to do this rather than a binding to get it working for some reason private static void PropertyFactoryProperty_PropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) { var view = (ExportOptionsPropertyGrid)d; view.OptionsGrid.DataFactory = e.NewValue as IDataFactory; } public IDataFactory PropertyFactory { get => (IDataFactory) GetValue(PropertyFactoryProperty); set => SetValue(PropertyFactoryProperty, value); } #endregion } }