단일 ContentControl을 보유하는 MainView가 있고, 응용 프로그램이로드 될 때 ContentControl이 기본 usercontrol을로드합니다.로드 된 사용자 정의 컨트롤 내에서 컨텐트 속성이 호출로 변경된 경우 Contentcontrol을 업데이트 할 수 없습니다.
<ContentControl x:Name="MainContentArea" Content="{Binding ActiveControl}"/>
로드 해당 UserControl은 몇 가지 플러그인 (무관)을로드하고 콤보 상자에서 항목을 선택시, 그것은 ViewModelLocator의 MVVM Light's 개념을 사용하여 부모 (MainViewModel)에 존재하는 ICommand의를 트리거합니다.
private void CreateSelectedPlugin(IExtendedUIViewFactory plugin)
{
var pluginStartControl = plugin.Create();
_locator.Main.DefaultCommand.Execute(pluginStartControl);
}
문제는 ContentControl을 갱신하지 않은 것, 나 중단 점을 설정하고, 명령이 MainViewModel에 난 보내 변수가 유효하다는 것을 실행 것을 알 수있다. 다만 예상대로 MAINVIEW가/MainViewModel이 작동에서, null로 ContentControl을을 설정 LoadSection 또는 testfunction를 호출
public ICommand DefaultCommand { get; set; }
public MainWindowViewModel()
{
DefaultCommand = new RelayCommand<object>(LoadSection, o => true);
}
private void LoadSection(object plugin)
{
ActiveControl = plugin;
//does not matter if i set it to null here
}
.
콘트롤 내에서 보낸 명령은 Contentcontrol에서 다른 내용을로드하지 않게 할 수 있습니까?
안녕하세요, 감사는 응답을, 내가 실제로 그 안에 INotifyProperty을하는 ModelViewBase, 그래서 내 "ActiveControl"는 다음과 같습니다을 구현하는 데 도움이 return activeControl; } 세트 { ActiveControl = value; RaisePropertyChanged ("ActiveControl"); } } ViewModel에서 GUI를 수동으로 업데이트해야하나요, 아니면 충분합니까? – Swift
나는 더 많은 코드를 볼 필요가 있다고 생각한다. 어떻게 액티브 컨트롤 속성이 정의되어 있는가? mainview datacontext가 정의 된 방법을 보여줄 수 있습니까? –
안녕하세요 J 킹, 나는 당신을 위해 작은 예제를 엮어서 내가 어떻게 돌아가는지 볼 수 있습니다 : [link] (https://www.dropbox.com/s/00pwufd2w4l1u3g/WpfApplication2.zip) – Swift