.NET 4.7.2 и конвертеры привязок - PullRequest
0 голосов
/ 30 мая 2018

Застрял здесь в некотором роде (каламбур не предназначен :))

Несколько наших клиентов обновили Windows 10 до версии 1803, что привело к боковой загрузке .NET 4.7.2.

Все выглядело нормально, но мы заметили, что наши сетки WPF начали действовать, как ни странно.Когда вы нажмете на определенные ячейки сетки, вы увидите только одно значение.Например,

Если сетка содержит следующее:

Column 1(custom Control) | Column 2 (String) | Column 3 (String)|
          A1             |       B1          |       C1   |
          A2             |       B2          |       C2   |
          A3             |       B3          |       C3   |

Если вы нажмете на A3 в столбце 1, вы увидите A3, если вы затем нажмете на A1 в столбце 1, вы бывсе еще вижу A3.

В предыдущих версиях .NET я обнаружил, что нажатие на ячейку будет сигнализировать о вызове конвертера.Это будет происходить при каждом щелчке ячеек в столбце 1. После 4.7.2 преобразователь вызывается только в первый раз, когда щелчок регистрируется в столбце, а затем никогда не вызывается снова.

Вот как настраиваются привязка и конвертер:

// setup binding for this data item
var mbinding = new MultiBinding { Mode = BindingMode.TwoWay, Converter = converter, ValidatesOnExceptions = false, ValidatesOnDataErrors = true };
var binding1 = new Binding(".") { Mode = BindingMode.OneWay, ValidatesOnExceptions = false, ValidatesOnDataErrors = true };
var binding2 = new Binding(string.Format("{0}", Adapter.FKKeyCol)) { Mode = BindingMode.TwoWay, ValidatesOnExceptions = false, ValidatesOnDataErrors = true };
mbinding.Bindings.Add(binding1);
mbinding.Bindings.Add(binding2);
mbinding.UpdateSourceTrigger = UpdateSourceTrigger.Explicit;
if (!editable) mbinding.Mode = BindingMode.OneWay;

Есть ли способ заставить конвертер вызываться для этого столбца при каждом клике снова?

...