static void Bind_Indexer_TwoWay() { // Binding Source with indexer. var map = new PersonMap { [123] = "Taro" }; // Binding Target (DependencyObject). var textBox = new TextBox { Text = "Default" }; Console.WriteLine(textBox.Text); // Binds target to source. var binding = new Binding("[123]") { Source = map, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }; textBox.SetBinding(TextBox.TextProperty, binding); Console.WriteLine(textBox.Text); // Changes source value. map[123] = "Jiro"; Console.WriteLine(textBox.Text); // Changes target value. textBox.Text = "Saburo"; Console.WriteLine(map[123]); }