Hey Abhishek, Just look at here what I did,
1) First of all I took one ListBox in Xaml and assign its ItemTemplate property like this -
<listbox name="ItemList" itemtemplate="{StaticResource myDataTemplate}" />
2)In code behind I wrote code something like this-
List<string> Items = new List<string>();
public MainWindow()
{
InitializeComponent();
Items.Add("Abc");
ItemList.ItemsSource = Items;
ItemList.SelectionChanged += ItemList_SelectionChanged;
}
void ItemList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBoxItem myListBoxItem = (ListBoxItem)(ItemList.ItemContainerGenerator.ContainerFromItem(ItemList.SelectedItem));
ContentPresenter myContentPresenter = FindVisualChild<contentpresenter>(myListBoxItem);
DataTemplate myDataTemplate = myContentPresenter.ContentTemplate;
TextBox myTextBlock = (TextBox)myDataTemplate.FindName("txtChannelDescription", myContentPresenter);
if(myTextBlock != null)
{
myTextBlock.Text = "Enter Your Text Here";
}
}
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;
}
So In this way by using "FindName" API of datatemplate, you can find the child element>