2016-03-17 63 views
1

我有一個小問題。C#SilverLight。標籤鍵不改變文本框的焦點

我使用ListBox控件和文本框。

我將重點放在第一個文本框上,並嘗試通過關鍵選項卡跳轉到以下文本框。 它不起作用。

我該怎麼做?

提前致謝!

<ListBox Name="Box" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Background="Transparent" BorderThickness="0"> 
      <ListBox.ItemContainerStyle> 
       <Style TargetType="ListBoxItem"> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate> 
           <StackPanel Orientation="Horizontal" Margin="40,2,0,2"> 
            <TextBlock Text="{Binding Label}" MinWidth="20" /> 
            <TextBox TabIndex="{Binding Index, Mode=OneWay}" Text="{Binding Information, Mode=TwoWay}"/> 
           </StackPanel> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 
      </ListBox.ItemContainerStyle> 
     </ListBox> 

namespace SilverlightApplication1 
{ 
    public partial class MainPage : UserControl 
    { 
     public MainPage() 
     { 
      InitializeComponent(); 

      var model = new List<Model>() 
      { 
       new Model() {Index = 1, Label = "1"}, 
       new Model() {Index = 2, Label = "2"}, 
       new Model() {Index = 3, Label = "3"}, 
       new Model() {Index = 4, Label = "4"} 
      }; 

      Box.ItemsSource = model; 


     } 
    } 


    public class Model 
    { 
     public int Index { get; set; } 
     public string Label { get; set; } 
     public string Information { get; set; } 
    } 
} 

回答

1

您需要在樣式中指定希望製表符如何工作。你應該不需要綁定tabindex,除非你想改變標籤工作的順序。我認爲這應該與你正在嘗試做的類似:

<ListBox Name="Box" 
     ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
     Background="Transparent" 
     BorderThickness="0"> 
    <ListBox.ItemContainerStyle> 
     <Style TargetType="ListBoxItem"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate> 
         <StackPanel Orientation="Horizontal" 
            Margin="40,2,0,2"> 
          <TextBlock Text="{Binding Label}" 
             MinWidth="20" /> 
          <TextBox Text="{Binding Information, Mode=TwoWay}" /> 
         </StackPanel> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="IsTabStop" 
        Value="False" /> 
     </Style> 
    </ListBox.ItemContainerStyle> 
    <ListBox.Style> 
     <Style TargetType="ListBox"> 
      <Setter Property="TabNavigation" 
        Value="Cycle" /> 
     </Style> 
    </ListBox.Style> 
</ListBox> 
+0

非常感謝!有用! –