2016-03-17 36 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

非常感谢!有用! –