2009-10-08 10 views
0

'P'속성을 가진 'obj1'비즈니스 개체가 있다고 가정합니다.코드에서 고급 콤보 박스 바인딩

비즈니스 오브젝트 목록이 있다고 가정 해 봅시다. 'List<BussObj> list'이고 각 BussObj 오브젝트에는 'A'및 'B'의 두 가지 특성이 있습니다.

이 목록은 combobox : combobox.ItemsSource = list;에 바인딩됩니다.

combobox.SelectedItem.B를 내 obj.P에 바인딩하는 바인딩 (C# 코드에서)을 지정하고 싶습니다. 그것을하는 방법?

나는 그런 일을 시도했지만 작동하지 않습니다
Binding bind= new Binding("B"); 
bind.Source = obj.P; 
comboSubject.SetBinding(ComboBox.SelectedItemProperty, bind); 

정확하게 작동하지 않습니다 어떤 도움

답변

0

을 위해 사전에 감사합니다? 해당 항목이 ComboBox에서 선택되어 있지 않거나 선택 항목이 변경되면 P이 업데이트되지 않습니까? ComboBox이 바인딩 된 목록의 P 값입니까? obj의 유형 INotifyPropertyChanged를 구현, 또는 DependencyObjectDependencyProperty되는 P로를 것을

또한 검증 시도 할 수 있습니다.

0

죄송합니다. 단 하나의 방법으로 만이 바인딩을 사용하여 죄송합니다. 콤보 박스의 항목을 선택한 후 적절한 값을 obj.P에 작성해야합니다. 이 시나리오에서는 더 INotifyPropChanged도 DependencyProperty에이 도움이 될 경우 당신은 여전히이 필요하거나 경우

0

확실하지 필요하지 않습니다,하지만 당신은 기본이 양방향 것 같은 바인딩 모드를 소스에 하나의 방법을 사용해 볼 수 있습니다 :

Mode = BindingMode.OneWayToSource 
이 트릭을 수행하는 경우
comboSubject.SetBinding(
     Selector.SelectedItemProperty, 
     new Binding { Source = selectedItemSource, Path = "SelectedItem" }); 

참조 ...

이 그래도 도움이된다면

또한, 나는 확실하지, 이런 식으로 할 것