두 개의 콤보의 'Make'및 'Model'이 있는데, 그들은 자신의 SelectedValue 속성을 ModelID 및 MakeID를 사용하여 Vehicle 개체에 바인딩합니다.WPF 바인딩 : 데이터베이스에서 콤보를 다시로드 한 후 바인딩 새로 고침
Heres는 모델 ...
<ComboBox DisplayMemberPath="Description" ItemsSource="{Binding Path=ModelSpecs}" SelectedValue="{Binding Path=Vehicle.ModelID}" SelectedValuePath="ID" />
사용자는 별도의 제어 자동차를 검색하고이 기본 차량 개체를 스왑. 동일한 Make의 차량간에 전환하는 경우 모든 것이 제대로 작동하지만 Make가 변경되면 데이터베이스로 이동하여 ModelSpec 컬렉션을 다시로드합니다. combo dosnt는 바인딩을 새로 고쳐야하기 때문에 모델 설명을 표시합니다.
현재 내 해결 방법은 모델을 다시로드하는 메소드의 끝에 추가하는 것입니다. 정상적으로 작동하지만 특히 정교한 솔루션은 아닙니다.
기본적으로 var modelID = ViewModel.Vehicle.ModelID;
ViewModel.Vehicle.ModelID = string.Empty;
ViewModel.Vehicle.ModelID = modelID;
난 그냥에서 INotifyPropertyChanged를 유발하고있어 ...
private string _modelID;
public string ModelID
{
get { return _modelID; }
set
{
if (_modelID == value) return;
_modelID = value;
OnPropertyChanged("ModelID");
}
}
나는 비슷한 세련 솔루션의 몇 가지 생각할 수
-하지만 더 나은 방법이 있어야합니다! 어떤 도움을 주셔서 감사합니다!
그의 코드와 태그는 Model-View-ViewModel을 사용하는 것이 좋습니다. –