Как создать TabControl Silverlight - PullRequest
0 голосов
/ 21 января 2011

Вид:

TabControl def:

<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 '.

1 Ответ

1 голос
/ 21 января 2011

Ваш вопрос немного неясен, но вы не можете связать свой класс Termino напрямую с ItemsSource из TabControl, поскольку он не получен из TabItem.

Вы можете попробовать изменить объявление на:

public class Termino : TabItem
{
    ....
}

Я думаю это должно сработать.

Документация для TabControl.ItemsSource на самом деле не помогает, если она указывает на страницу ItemsControl (от которой TabControl наследует), так что примеры для этого, а не TabControl.

На самом деле, думая об этом, вы должны создать список TabItems, чтобы установить ItemsSource вашего TabControl, и привязать свой класс к TabItem.

...