Browse Source

Better DesignItemBinding

pull/692/head
jogibear9988 10 years ago
parent
commit
945af62075
  1. 25
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/MarkupExtensions/DesignItemBinding.cs

25
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/MarkupExtensions/DesignItemBinding.cs

@ -65,19 +65,30 @@ namespace ICSharpCode.WpfDesign.Designer.MarkupExtensions @@ -65,19 +65,30 @@ namespace ICSharpCode.WpfDesign.Designer.MarkupExtensions
void targetObject_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
var ctx = ((FrameworkElement) sender).DataContext as FrameworkElement;
var surface = ctx.TryFindParent<DesignSurface>();
var dcontext = ((FrameworkElement) sender).DataContext;
DesignContext context;
FrameworkElement fe;
DesignItem designItem;
if (dcontext is DesignItem) {
designItem = (DesignItem)dcontext;
context = designItem.Context;
fe = designItem.View as FrameworkElement;
} else {
fe = ((FrameworkElement)dcontext);
var srv = fe.TryFindParent<DesignSurface>();
context = srv.DesignContext;
designItem = context.Services.Component.GetDesignItem(fe);
}
if (surface != null)
if (context != null)
{
_binding = new Binding(_propertyName);
_binding.Source = ctx;
_binding.Source = fe;
_binding.UpdateSourceTrigger = UpdateSourceTrigger;
_binding.Mode = BindingMode.TwoWay;
var designItem = surface.DesignContext.Services.Component.GetDesignItem(ctx);
_converter = new DesignItemSetConverter(designItem, _propertyName, SingleItemProperty);
_binding.Converter = _converter;

Loading…
Cancel
Save