小编Jul*_*ian的帖子

无法从TabControl DataTemplate获取控件

我在过去的两天里一直在谷歌搜索,无法到达任何地方,我只是无法对tabcontrol的datatemplate中的任何控件做任何事情.

首先,代码:

private void Window_Loaded(object sender, RoutedEventArgs e) {
    tabControl1.ItemsSource = new string[] { "TabA", "TabB", "TabC" };
}

private void tabControl1_SelectionChanged(object sender, SelectionChangedEventArgs e) {
    ContentPresenter cp = tabControl1.Template.FindName("PART_SelectedContentHost", tabControl1) as ContentPresenter;

    DataTemplate dt = tabControl1.ContentTemplate;
    Grid g = tabControl1.ContentTemplate.FindName("myGrid", cp) as Grid;
    g.Background = new SolidColorBrush(Colors.Red);
}
Run Code Online (Sandbox Code Playgroud)

XAML

<Window x:Class="tabTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Grid>
    <TabControl IsSynchronizedWithCurrentItem="True" Height="140" Name="tabControl1" Width="230" SelectionChanged="tabControl1_SelectionChanged">
        <TabControl.ContentTemplate>
            <DataTemplate>
                <Grid x:Name="myGrid">                        
                </Grid>
            </DataTemplate>    
        </TabControl.ContentTemplate>            
    </TabControl>
</Grid>
Run Code Online (Sandbox Code Playgroud)

总之这一行:

Grid g = tabControl1.ContentTemplate.FindName("myGrid", cp) …
Run Code Online (Sandbox Code Playgroud)

wpf tabcontrol datatemplate

5
推荐指数
1
解决办法
3770
查看次数

标签 统计

datatemplate ×1

tabcontrol ×1

wpf ×1