protected void SetTargetItemValue([NotNull] TTargetItem targetItem, [CanBeNull] object targetItemValue) { if (targetItemValue == BindingValue.UnsetValue) { if (FallbackValue != null) { targetItemValue = FallbackValue.Value; } else { if (!SourceItemBinding.TryGetItem(out _)) { Log("Source item is null and fallback value is not set. " + "This may lead to diplaying value from the previous source item. " + "Set fallback value to override previous one."); } } } if (targetItemValue != BindingValue.UnsetValue) { try { TargetItemBinding.SetValue(targetItem, (TTargetItemValue)targetItemValue, _compositeItemBindingMode == BindingMode.TwoWay); } catch (Exception ex) { Log($"An \"{LogFormatter.FormatException(ex)}\" exception occurred while executing " + $"\"{LogFormatter.FormatTypeName(TargetItemBinding)}.{nameof(TargetItemBinding.SetValue)}\" method."); } } }
internal CompositeItemCommandBinding( [NotNull] SourceItemCommandBinding <TSourceItem, TSourceItemValue> sourceItemCommandBinding, [NotNull] TargetItemBinding <TTargetItem, TTargetItemValue> targetItemBinding, BindingMode requestedBindingMode, [NotNull] ICompositeItemBindingValueConverter valueConverter) : base(sourceItemCommandBinding, targetItemBinding, requestedBindingMode, valueConverter) { }
internal TargetItemCommandBinding( [NotNull] TargetItemBinding <TCommandTriggerItem, TCommandTriggerItemValue> commandTriggerItemBinding, [NotNull] TargetItemBinding <TCommandParameterItem, TCommandPatameterItemValue> commandParameterItemBinding) : base(commandTriggerItemBinding.GetItemReference(), commandTriggerItemBinding.ItemValuePathAccessor) { _commandTriggerItemBinding = commandTriggerItemBinding; _commandParameterItemBinding = commandParameterItemBinding; }
public void Dispose() { UnsubscribeFromSourceItemEvents(); UnsubscribeFromTargetItemEvents(); SourceItemBinding.Dispose(); TargetItemBinding.Dispose(); }
internal TargetItemCustomValueBinding( [NotNull] TargetItemBinding <TItem, TValue> targetItemBinding, [CanBeNull] TCustomValue customValue) : base(targetItemBinding.ItemReference, targetItemBinding.ItemValuePathAccessor) { _targetItemBinding = targetItemBinding; _customValue = customValue; }
internal SourceItemBindingBuilder( [NotNull] ItemReference <TSourceItem> sourceItemReference, [NotNull] TargetItemBinding <TTargetItem, TTargetItemValue> targetItemBinding, [NotNull] BindingSet <TSourceItem> bindingSet) { _sourceItemReference = sourceItemReference; _targetItemBinding = targetItemBinding; _bindingSet = bindingSet; }
protected CompositeItemBindingBase( [NotNull] SourceItemBinding <TSourceItem, TSourceItemValue> sourceItemBinding, [NotNull] TargetItemBinding <TTargetItem, TTargetItemValue> targetItemBinding, BindingMode requestedBindingMode, [NotNull] CompositeItemBindingValueConverter <TSourceItem> valueConverter) { SourceItemBinding = sourceItemBinding; TargetItemBinding = targetItemBinding; RequestedBindingMode = requestedBindingMode; ValueConverter = valueConverter; SetLogger(); }
internal CompositeItemBindingBuilder( [NotNull] SourceItemBinding <TSourceItem, TSourceItemValue> sourceItemBinding, [NotNull] TargetItemBinding <TTargetItem, TTargetItemValue> targetItemBinding, [NotNull] BindingSet <TSourceItem> bindingSet) { _compositeItemBinding = new CompositeItemBinding <TSourceItem, TSourceItemValue, TTargetItem, TTargetItemValue>( sourceItemBinding, targetItemBinding, BindingMode.TwoWay, new CompositeItemBindingValueConverter <DefaultValueConverter>()); bindingSet.Add(_compositeItemBinding); }
internal CompositeItemCommandBindingBuilder( [NotNull] SourceItemCommandBinding <TSourceItem, TSourceItemValue> sourceItemBinding, [NotNull] TargetItemBinding <TTargetItem, TTargetItemValue> targetItemBinding, [NotNull] BindingSet <TSourceItem> bindingSet) { _compositeItemBinding = new CompositeItemCommandBinding <TSourceItem, TSourceItemValue, TTargetItem, TTargetItemValue>( sourceItemBinding, targetItemBinding, BindingMode.OneWayToSource, new CompositeItemBindingValueConverter <TSourceItem>(typeof(DefaultValueConverter))); _bindingSet = bindingSet; _bindingSet.Add(_compositeItemBinding); }
internal CompositeItemCommandBindingBuilder( [NotNull] SourceItemCommandBinding <TSourceItem, TSourceItemValue> sourceItemBinding, [NotNull] TargetItemBinding <TTargetItem, TTargetItemValue> targetItemBinding, [NotNull] BindingSet <TSourceItem> bindingSet, [NotNull] ICompositeItemBinding <TSourceItem> oldCompositeItemBinding) { _compositeItemBinding = new CompositeItemCommandBinding <TSourceItem, TSourceItemValue, TTargetItem, TTargetItemValue>( sourceItemBinding, targetItemBinding, oldCompositeItemBinding.RequestedBindingMode, oldCompositeItemBinding.ValueConverter); _bindingSet = bindingSet; _bindingSet.Remove(oldCompositeItemBinding); _bindingSet.Add(_compositeItemBinding); }
protected bool TryGetTargetItemValue([NotNull] TTargetItem targetItem, out TTargetItemValue targetItemValue) { try { return(TargetItemBinding.TryGetValue(targetItem, out targetItemValue)); } catch (Exception ex) { Log($"An \"{LogFormatter.FormatException(ex)}\" exception occurred while executing " + $"\"{LogFormatter.FormatTypeName(TargetItemBinding)}.{nameof(TargetItemBinding.TryGetValue)}\" method."); targetItemValue = default; return(false); } }
private void UnsubscribeFromTargetItemEvents() { if (TargetItemBinding.TryGetItem(out var targetItem)) { if (IsFromTargetToSourceBindingMode()) { try { TargetItemBinding.UnsubscribeFromEvents(targetItem); } catch (Exception ex) { Log($"An \"{LogFormatter.FormatException(ex)}\" exception occurred while executing " + $"\"{LogFormatter.FormatTypeName(TargetItemBinding)}.{nameof(TargetItemBinding.UnsubscribeFromEvents)}\" method."); } } } }
private void SetLogger() { SourceItemBinding.SetLogger(Logger); TargetItemBinding.SetLogger(Logger); ValueConverter.SetLogger(Logger); }