wpf c # изменить элемент в выбранной вкладке - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть код XAML, подобный этому:

<Grid x:Name="LayoutRoot">
    <TabControl Margin="0,53,0,0">
        <TabItem Header="First">
            <Grid Background="#FFE5E5E5">
            <TextBlock />
            </Grid>
        </TabItem>
        <TabItem Header="Second" >
            <Grid Background="#FFE5E5E5">
            <TextBlock />
            </Grid>
        </TabItem>
        <TabItem Header="Third">
            <Grid Background="#FFE5E5E5">
            <TextBlock />
            </Grid>
        </TabItem>
    </TabControl>
    <Button Content="Button" HorizontalAlignment="Right" Margin="0,8,174,0" VerticalAlignment="Top" Width="75"/>
    <TextBox Height="20.96" Margin="30,9,267,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top"/>
</Grid>

При использовании C # в каждом табите есть один текстовый блок если я наберу что-то в текстовом поле, и после этого я нажимаю кнопку, и теперь выбран TabItem "третий" Пожалуйста, помогите мне, как изменить текстовый блок в выбранном TabItem сейчас? Да, текстовое поле и кнопка снаружи от вкладки.

1 Ответ

0 голосов
/ 05 апреля 2011

Вот оно:

<Grid x:Name="LayoutRoot">
    <TabControl Margin="0,53,0,0" Name="tabControl">
        <TabItem Header="First">
            <Grid Background="#FFE5E5E5">
                <TextBlock />
            </Grid>
        </TabItem>
        <TabItem Header="Second" >
            <Grid Background="#FFE5E5E5">
                <TextBlock />
            </Grid>
        </TabItem>
        <TabItem Header="Third">
            <Grid Background="#FFE5E5E5">
                <TextBlock />
            </Grid>
        </TabItem>
    </TabControl>
    <Button Content="Button" HorizontalAlignment="Right" Margin="0,8,174,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
    <TextBox Height="20.96" Margin="30,9,267,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Name="textBox"/>
</Grid>

Код поддержки:

private void Button_Click(object sender, RoutedEventArgs e)
{
    var match = tabControl.Items.OfType<TabItem>().Where(tab => tab.Header.ToString() == textBox.Text).FirstOrDefault();
    if (match != null) match.IsSelected = true;
}

Надеюсь, я вас правильно понял

Обновление Похоже, я не понял тебя с первого раза. Вот правильный код для вашего дела:

private void Button_Click(object sender, RoutedEventArgs e)
{
    tabControl.Items.OfType<TabItem>().Where(tab => tab.IsSelected == true).First().Header = textBox.Text;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...