WPF headscontrol - أمر على ViewModel لا يطلق النار من داخل العناصر Control
-
05-07-2019 - |
سؤال
أنا أستخدم 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>
المحلول
شكوك صحيحة. لديك خياران:
- فضح
EntitySelectedCommand
من نموذج عرض طفلك أيضًا (أي كل منهماSupplier
سيكون لديها هذه الخاصية ، أيضا). - قم بتغيير الربط الخاص بك لاستخدام أ
RelativeSource
للوصول إلى واستخدامDataContext
من الوالدItemsControl
.
نصائح أخرى
ألق نظرة على مجموعة أدوات MVVM... لديها فكرة عن امتناع الأمر الذي يمكنك استخدامه!
قم بإنشاء commandRefrece كمورد ثم استخدم امتداد ترميز StaticResource ...
<c:CommandRefrence x:Key="EntitySelectedCommandRef" Command="{Binding EntitySelectedCommand}" />
وبعد ذلك يمكنك استخدامه لاحقًا
...Command="{StaticResource EntitySelectedCommandRef}" ...
لا تنتمي إلى StackOverflow