wpf itemscontrol -viewmodel의 명령 itemscontrol 내에서 발사되지 않음
-
05-07-2019 - |
문제
MV-VM을 사용하고 있으며 'entitySelectedCommand'라는 ViewModel에 명령이 있습니다.
이 명령을 해고하기 위해 항목 통제에 모든 항목을 가져 오려고 노력했지만 작동하지 않습니다.
각 항목 'DataContext'가 뷰 모델보다는 항목이 묶인 개별 객체이기 때문이라고 생각합니다.
누구든지 나를 올바른 방향으로 가리킬 수 있습니까?
건배,
앤디
<ItemsControl ItemsSource="{Binding Path=LinkedSuppliers}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<Controls:EntityLabel Grid.Column="0" Grid.Row="0" Content="{Binding Name}" CurrentEntity="{Binding }" EntitySelected="{Binding EntitySelectedCommand}" ></Controls:EntityLabel>
<StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
해결책
당신의 의심이 맞습니다. 몇 가지 옵션이 있습니다.
- 노출
EntitySelectedCommand
자녀보기 모델에서도 (즉, 각각Supplier
이 속성도 가질 것입니다). - 바인딩을 변경하여 사용하십시오
RelativeSource
연락하고 사용합니다DataContext
부모의ItemsControl
.
다른 팁
살펴보십시오 MVVM 툴킷... 당신이 사용할 수있는 명령 굴절에 대한 아이디어가 있습니다!
자원으로 CommandRefrece를 만들고 staticResource 마크 업 확장을 사용하십시오 ...
<c:CommandRefrence x:Key="EntitySelectedCommandRef" Command="{Binding EntitySelectedCommand}" />
그리고 나중에 사용할 수 있습니다
...Command="{StaticResource EntitySelectedCommandRef}" ...
제휴하지 않습니다 StackOverflow