2011-04-05 81 views
0

我有一個XAML代碼:WPF C#更改元素在選定的選項卡

<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是「第三」 請幫我如何改變該選定的TabItem現在的文本塊? 是的選項卡外的文本框和按鈕。

+0

如果你點擊按鈕,沒有任何反應 - 你沒有任何行爲連接到按鈕。你需要幫助嗎?*發生什麼事情? – 2011-04-05 08:35:29

+0

此外,內容在標籤之外...所以顯然改變標籤,不會改變內容。 – 2011-04-05 08:39:36

+0

你爲什麼認爲它在外面?這不是 – Poma 2011-04-05 08:43:17

回答

0

這就是:

<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; 
} 
+0

iam對不起,我已經更新了我的問題,請幫助我 – yozawiratama 2011-04-05 08:50:43

+0

嘗試從我的答案代碼。當您點擊按鈕時,它會將選定選項卡的標題文本更改爲文本框中的當前文本。 – Poma 2011-04-05 08:52:53

相關問題