У меня есть вид следующим образом. Я хочу получить доступ ко всем флажкам в представлении главного окна в области просмотра. Но в контексте главного окна он отлично работает. .Но в модели представления, если я скажу IEnumerable<CheckBox> all = window.allboxes();
его не working..Please помощь ..Доступ к визуальным дочерним элементам из viewmodel wpf
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
EntityViewModel ev = new EntityViewModel();
this.DataContext = ev;
}
public IEnumerable<CheckBox> allboxes()
{
IEnumerable<CheckBox> myboxes = FindVisualChildren<CheckBox>(this);
return myboxes;
}
public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject
{
if (depObj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
{
yield return (T)child;
}
foreach (T childOfChild in FindVisualChildren<T>(child))
{
yield return childOfChild;
}
}
}
}
}
Тот факт, что вы пытаетесь это сделать, говорит мне, что вы делаете это неправильно. Какую проблему вы пытаетесь решить? Для правильной установки MVVM этот код не нужен. – BradleyDotNET
На самом деле, я хочу получить ссылку на все отмеченные флажки в представлении списка, чтобы в режиме просмотра я мог получить соответствующие идентификаторы из наблюдаемой коллекции и сохранить их в базе данных. Вкратце получить идентификаторы всех отмеченных флажков. .Пожалуйста, помогите .. – nikhil