Jaroslav Mitrovic
Привет, Пракаш.
Чтобы сделать это правильно, потому что я не использую Listviews.
"Элемент" должен быть записью внутри Listview.
Сам пункт должен содержать "подпункты" ?
Можно ли использовать флажок также в качестве подпункта?
Так вот как это:
items.Subitems.add(chk) ???
и уберите эту линию:
ListView1.Controls.Add(chk)
А если вам нужно 3 флажка? (Я не вижу троих из них.)
Повторите пункты.Добавить строку(chk) с соответствующими именами переменных.
Может быть, с петлей внутри строки чтения.
Я бы попытался иметь только один элемент, который содержал бы флажки и все остальное, что считывается из "набора данных" (данные, которые объединены в один набор).
Так что если
Цитата:
Элементы listviewitem
может иметь Подэлементы и может иметь элементы управления внутри него, я бы сделал все данные, помещенные в элементы управления.
Так похожий
Цитата:
пункт.Подпункты.добавить(читатель.GetString("имя"))
пункт.Подпункты.добавить(читатель.И getString("room_no"))
Станет например:
item.Controls.Add(New Lable_xxx.Text = READER.GetString("name")
item.Controls.Add(New Lable_xxy.Text = READER.GetString("room_no")
Если вы используете WPF или UWP, пожалуйста, попробуйте использовать классы и Datatemplates.
Классы-это данные, считываемые из считывателя в объекты.
Они должны войти в ObservableCollection (то есть Вашего типа Classstype)
тогда ListView будет привязан к этой коллекции (ItemsSource).
В Xaml Datatemplate может выглядеть следующим образом:
<DataTemplate x:Key="LindenstrasseTemplate"
DataType="local:LindenstrasseWikiPediaEpisode">
<Border BorderBrush="Black"
BorderThickness="2"
CornerRadius="4"
d:DesignHeight="150"
d:DesignWidth="600">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<Label Content="{Binding Titel}"
Margin="4"
FontSize="36"
FontWeight="Bold" />
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition Width="80" />
<ColumnDefinition Width="80" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ProgressBar IsIndeterminate="{Binding Downloading, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Grid.ColumnSpan="2"
Grid.Column="1"
Height="28"
Margin="4,0"
Visibility="{Binding Downloading, Converter={StaticResource BooleanToVisibilityConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<CheckBox Style="{StaticResource OrangeSwitchStyle}"
IsChecked="{Binding DateiVorhanden, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Margin="10,0,4,0"
Grid.Column="0"
HorizontalAlignment="Left" />
<Label Grid.Column="1"
Content="{Binding StaffelFolge, FallbackValue=999}"
Width="Auto" />
<Label Content="{Binding Folge}"
Width="Auto"
Grid.Column="2" />
<Label Content="{Binding Sendedatum}"
HorizontalAlignment="Stretch"
Width="Auto"
Grid.Column="3" />
</Grid>
<Label Grid.Column="0"
Content="{Binding Dateiname}"
Margin="4"
Grid.Row="2" />
</Grid>
</Border>
</DataTemplate>
Список мой пример, но вы можете использовать элемента управления ListView, и установить
ItemsSource к ObservableCollection, а также установить
Свойства itemtemplate, что ListView может отображать элементы ListViewItems согласованно.
("Свойство selecteditem в переменную/свойство для получения информации о выбранных (набора данных)" только если вы, используя шаблон MVVM)
<ListBox x:Name="LBLindenstrasse"
VirtualizingPanel.IsVirtualizingWhenGrouping="True"
AlternationCount="3"
Grid.Column="0"
ItemsSource="{Binding LindenstrasseListe.DieEpisoden, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemTemplate="{StaticResource LindenstrasseTemplate}"
HorizontalContentAlignment="Stretch"
SelectedItem="{Binding LindenstrasseAusgewählteEpisode, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsSynchronizedWithCurrentItem="True"
Background="#3F7742B5"
Grid.Row="1">
Пожалуйста, спросите больше о DataTemplates, если это необходимо.
c.u. Zui из Гамбурга, который никогда не использовал ListView (Хм, может быть, мне стоит попробовать его когда-нибудь...)