I'm trying to access an image from a DockPanel inside a TabItem.Header to set it's Visibility (however I can't use MVVM approach in this case and binding concept). I would like to update its property in C# Code.
How can I do this?
C# Code :
public T GetVisualChild<T>(DependencyObject parent) where T : Visual
{
T child = default(T);
int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < numVisuals; i++)
{
Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
child = v as T;
if (child == null)
{
child = GetVisualChild<T>(v);
}
if (child != null)
{
break;
}
}
return child;
}
// Method Call
var TaskTabItem = new TabItem();
TaskTabItem = MainWindow.SelectedItem as TabItem;
var dockpanel = GetVisualChild<DockPanel>((DockPanel)TaskTabItem.Header);
Image img = (Image) dockpanel.Children[0];
img.Visibility = Visibility.Visible;
Xaml Code:
<TabItem x:Name="MyTab" >
<TabItem.Header>
<DockPanel x:Name="TabHeaderPanel">
<Image x:Name="TabIcon" Source="../icons/icon1.png" Visibility="Collapsed"/>
<TextBlock Text="Home Page"/>
</DockPanel>
</TabItem.Header>
</TabItem>