WPF headscontrol - أمر على ViewModel لا يطلق النار من داخل العناصر Control

StackOverflow https://stackoverflow.com/questions/1410215

سؤال

أنا أستخدم MV-VM ولدي أمر على ViewModel الخاص بي يسمى "EntitySelectedCommand".

أحاول الحصول على جميع العناصر الموجودة في العناصر المستحقة لإطلاق هذا الأمر ، ومع ذلك فهو لا يعمل.

أعتقد أن ذلك يرجع إلى أن كل عناصر "DataContext" هو الكائن الفردي الذي يرتبط به العنصر ، بدلاً من ViewModel؟

هل يمكن لأي شخص أن يوجهني في الاتجاه الصحيح من فضلك؟

هتافات،

أندي

<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