locked
custom Listbox RRS feed

  • Вопрос

  • Добрый вечер! 

    Я хочу создать свой ListBox, что бы в нем отображался текст и был чекбокс. Как я понимаю, такое можно реализовать через usercontrol или есть еще и другие способы?

    Заранее спасибо.)

    30 декабря 2013 г. 6:07

Ответы

  • Вроде понятно и одновременно нет, если не сложно скиньте демку. Заранее благодерен.) 

    <ListBox ItemsSource="{Binding DownloadedFiles}">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="75"/>
                                        <ColumnDefinition Width="Auto"/>
                                    </Grid.ColumnDefinitions>
                                    <Image Source="/Assets/File.png" Stretch="Fill" Grid.Column="0"/>
                                    <TextBlock Text="{Binding}" Grid.Column="1" FontSize="26" 
                                               HorizontalAlignment="Left" VerticalAlignment="Center"/>
                                </Grid>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

    30 декабря 2013 г. 16:01
  • Добрый день.

    Для решения таких задач, используют DataTemplate. Т.е вы можете подсунуть в качестве источника данных коллекцию элементов содержащих булево поле и строку. В DataTemplate разместить CheckBox, свойство IsChecked которого будет привязано биндингом к булеву полю, а Content к текстовому. Понятно? Если нет, напишите, я тогда завтра демку напишу...

    30 декабря 2013 г. 13:02
    Отвечающий

Все ответы

  • Можно из без usercontrol. Можно вот так через xaml http://developer.nokia.com/Community/Wiki/Listbox_handling_in_Windows_Phone

    Но можно и через c#. Например:

    TextBox text = new TextBox();

    ListBox listbox = new ListBox();

    listbox.items.add(text);

    И потом просто выводишь этот листбокс на страницу.

    30 декабря 2013 г. 8:23
  • Добрый день.

    Для решения таких задач, используют DataTemplate. Т.е вы можете подсунуть в качестве источника данных коллекцию элементов содержащих булево поле и строку. В DataTemplate разместить CheckBox, свойство IsChecked которого будет привязано биндингом к булеву полю, а Content к текстовому. Понятно? Если нет, напишите, я тогда завтра демку напишу...

    30 декабря 2013 г. 13:02
    Отвечающий
  • Вроде понятно и одновременно нет, если не сложно скиньте демку. Заранее благодерен.) 
    30 декабря 2013 г. 15:49
  • Вроде понятно и одновременно нет, если не сложно скиньте демку. Заранее благодерен.) 

    <ListBox ItemsSource="{Binding DownloadedFiles}">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="75"/>
                                        <ColumnDefinition Width="Auto"/>
                                    </Grid.ColumnDefinitions>
                                    <Image Source="/Assets/File.png" Stretch="Fill" Grid.Column="0"/>
                                    <TextBlock Text="{Binding}" Grid.Column="1" FontSize="26" 
                                               HorizontalAlignment="Left" VerticalAlignment="Center"/>
                                </Grid>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

    30 декабря 2013 г. 16:01