Если вы ищете добавление элементов управления в первом столбце вашей сетки, тогда поместите Panel в первый столбец и в коде добавьте элементы управления как дочерние элементы для этой панели. Итак, как вы упомянули выше, что вы используете DataTemplete, то я хотел бы сказать, что вы можете получить доступ к этой панели что-то вроде:
Поместите приведенные ниже коды в событие, где вы хотите добавить элементы управления.
ListBoxItem item = (ListBoxItem)(this.lst.ItemContainerGenerator.ContainerFromIndex(i));
ContentPresenter presenter = FindVisualChild<ContentPresenter>(item);
DataTemplate template = presenter.ContentTemplate;
StackPanel stack = (StackPanel)template.FindName("FirstColumn Panel Name", presenter);
и затем вызовите следующий метод:
private childItem FindVisualChild<childItem>(DependencyObject obj)
where childItem : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is childItem)
return (childItem)child;
else
{
childItem childOfChild = FindVisualChild<childItem>(child);
if (childOfChild != null)
return childOfChild;
}
}
return null;
}