2011-01-20 47 views
0

看:如何创建一个TabControl Silverlight的

TabControl的高清:

<sdk:TabControl x:Name="tcWords"> 
       <sdk:TabControl.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Vertical"> 
          <TextBlock Text="{Binding Letra}" /> 
          <TextBlock Text="{Binding Palabra}" /> 
          <TextBlock Text="{Binding Palabra}" /> 
         </StackPanel> 
        </DataTemplate> 
       </sdk:TabControl.ItemTemplate> 
      </sdk:TabControl> 

代码:

public class Termino 
    { 
     public string Letra { get; set; } 
     public string Palabra { get; set; } 
     public string Significado { get; set; } 
    } 

    List<Termino> arrPalabras = new List<Termino>(); 
      arrPalabras.Add(new Termino { Letra = "A", Palabra = "Ave", Significado = "Cualquier cosa" }); 
      arrPalabras.Add(new Termino { Letra = "A", Palabra = "Avion", Significado = "Cualquier cosa avion" }); 
      //lstItems.ItemsSource = arrPalabras; 
      tcWords.ItemsSource = arrPalabras; 

它抛出一个异常!

无法转换 类型的对象 'Paradigma.Silverlight.DiccionarioDatos.Termino' 键入 System.Windows.Controls.TabItem”。

+0

你什么时候得到这个异常?这是输出窗口中的'Binding'异常还是调试器呕吐? – VoodooChild

回答

1

你的问题是有点不清楚,但你不能你Termino类直接绑定到TabControlItemsSource因为它不是从TabItem的。

你可以试着改变你的声明:

public class Termino : TabItem 
{ 
    .... 
} 

认为这应该工作。

documentation for TabControl.ItemsSource并不能真正帮助有它指向ItemsControl页面(从TabControl继承),这样的例子是,与其TabControl

其实,思考它,你应该创建的TabItems列表设置为您TabControlItemsSource和你的类绑定到TabItem

+0

他没有绑定他的班级,而是一个列表对象'tcWords.ItemsSource = arrPalabras' – VoodooChild

+0

@Voodoo - 但是'TabControl'想要一个列表'TabItems'而不是'RandomClass'列表。 – ChrisF

+0

好的,但在TabControl上设置'ItemsSource'会创建这些'TabItems'。 (但也许不是??) - 我不得不说,我迷惑自己在这一个:) – VoodooChild

相关问题