動作環境
Windows 7 Pro (32bit)
Microsoft Visual Studio 2017 Community
http://gushwell.ldblog.jp/archives/52334874.html
を元に学習中。
        private void ChangeUpdateSourceTrigger(TextBox textBox, string name) {
            Binding binding = BindingOperations.GetBinding(textBox1, TextBox.TextProperty);
            BindingOperations.SetBinding(textBox, TextBox.TextProperty,
                new Binding(name) {
                    Mode = BindingMode.TwoWay,
                    UpdateSourceTrigger = _myObject.UpdateSourceTrigger
                });
        }
の部分においてGetBinding()したbindingを使っていない部分が気になった。
使うようにしてみた。
        private void ChangeUpdateSourceTrigger(TextBox textBox, string name)
        {
            // 1. original
            //Binding binding = BindingOperations.GetBinding(textBox1, TextBox.TextProperty);
            //BindingOperations.SetBinding(textBox, TextBox.TextProperty,
            //    new Binding(name)
            //    {
            //        Mode = BindingMode.TwoWay,
            //        UpdateSourceTrigger = _myObject.UpdateSourceTrigger
            //    });
            // 2. 変更
            Binding bnd = BindingOperations.GetBinding(textBox, TextBox.TextProperty);
            bnd.UpdateSourceTrigger = _myObject.UpdateSourceTrigger;
            BindingOperations.SetBinding(textBox, TextBox.TextProperty, bnd);
        }
実行してComboBoxを変更すると以下のエラーが出る。
GetBinding()した変数を用いてUpdateSourceTrigger を変更することはできないようだ。
そのためnew Binding()していると理解した。
