我有一個視圖如下..我想訪問viewmodel中主窗口的列表視圖中的所有複選框。但在主窗口的上下文中,它工作正常。 。但在視圖模型,如果我說IEnumerable<CheckBox> all = window.allboxes();
它不是working..Please幫助..從視圖模型訪問視覺子元素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 2014-09-29 18:42:01
其實我想獲取列表視圖中所有選中的複選框的引用,以便在視圖模型中,我可以從可觀察集合中檢索相應的ID並將它們存儲到數據庫中。簡而言之,獲取所有選中複選框的ID。 。請幫助.. – nikhil 2014-09-29 18:56:43