Создание сводного элемента во время выполнения с помощью ListBoxWithCheckBoxes

Я хочу создать новый элемент Pivot через C # во время выполнения, отображая список Bx типа ListBoxWithCheckBoxes из набора инструментов, облегчая переключение видимых или невидимых флажков в левой части.

Моя текущая версия работает, поскольку рисует новую сводную страницу и привязывает к ней элементы. Но я не могу заставить ListBoxWithCheckBoxes работать правильно.

Это из моего файла cs:

var itemTemplate = 
                @"<DataTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"">  
                    <StackPanel Margin=""0,0,0,17"" HorizontalAlignment=""Stretch"" Height=""78"" Orientation=""Vertical""> 
                        <TextBlock Text=""{Binding Title}"" TextWrapping=""Wrap"" Style=""{StaticResource PhoneTextExtraLargeStyle}"" Width=""Auto""/>
                        <TextBlock Text=""{Binding Description}"" TextWrapping=""Wrap"" Margin=""12,-6,12,0"" Style=""{StaticResource PhoneTextSubtleStyle}"" Width=""Auto""/>
                    </StackPanel>  
                 </DataTemplate>";


            //Creating Pivot Item
            PivotItem newPiv = new PivotItem(); 
            newPiv.Header = "Pivot Header"; //defining a header

            //Content for the Pivot Item
            ListBoxWithCheckBoxes newList = new ListBoxWithCheckBoxes(); //new listbox
            newList.ItemsSource = App.ViewModel.Items; //Grapping some items
            newList.ItemTemplate = (DataTemplate)XamlReader.Load(itemTemplate); //using xaml template

            //Adding the list to the Pivot Item
            newPiv.Content = newList; //Adding list to Pivot Item
            MainItemList.Items.Add(newPiv); //Adding Pivot Item

Дополнительная информация: я подозреваю, что это как-то связано с пространствами имен. в XAML это добавлено:

xmlns:my="clr-namespace:System.Windows.Controls;assembly=WindowsPhoneListBoxWithCheckBoxesControl"

И обычный ListBoxWithCheckBoxes, который не делается через c# во время выполнения, работает нормально. это сделано так:

<my:ListBoxWithCheckBoxes x:Name="FancyListBox" Margin="0,0,-12,0" HorizontalAlignment="Stretch" ItemsSource="{Binding Items}" >

person Kasper Sylvest    schedule 06.12.2012    source источник


Ответы (1)


Зарегистрируйтесь для события Loaded в MyPivotItem и установите для IsInChooseState значение true в обработчике событий.

private void MyPivotItem_Loaded(object sender, RoutedEventArgs e)
{
    MyPivotItem pivotItem = sender as MyPivotItem;
    pivotItem.myListBox.IsInChooseState = true;
}
person Kishore Arepalli    schedule 07.12.2012