문제

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>
도움이 되었습니까?

해결책

당신의 의심이 맞습니다. 몇 가지 옵션이 있습니다.

  1. 노출 EntitySelectedCommand 자녀보기 모델에서도 (즉, 각각 Supplier 이 속성도 가질 것입니다).
  2. 바인딩을 변경하여 사용하십시오 RelativeSource 연락하고 사용합니다 DataContext 부모의 ItemsControl.

다른 팁

살펴보십시오 MVVM 툴킷... 당신이 사용할 수있는 명령 굴절에 대한 아이디어가 있습니다!

자원으로 CommandRefrece를 만들고 staticResource 마크 업 확장을 사용하십시오 ...

<c:CommandRefrence x:Key="EntitySelectedCommandRef" Command="{Binding EntitySelectedCommand}" />

그리고 나중에 사용할 수 있습니다

...Command="{StaticResource EntitySelectedCommandRef}" ...
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top