C# 从ItemSource中选择ListView项
我有一个这样的列表视图C# 从ItemSource中选择ListView项,c#,xaml,listview,uwp,uwp-xaml,C#,Xaml,Listview,Uwp,Uwp Xaml,我有一个这样的列表视图 <ListView x:Name="lview" SelectionMode="Multiple"> <ListView.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Name, Mode=OneWay}" /> </DataTemplate> </ListView.Ite
<ListView x:Name="lview" SelectionMode="Multiple">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name, Mode=OneWay}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
public MainPage()
{
this.InitializeComponent();
ObservableCollection<OptionItem> io = new ObservableCollection<OptionItem>();
io.Add(new OptionItem { Name = "11111111111", IsSelected=false });
io.Add(new OptionItem { Name = "22222222222", IsSelected=true });
io.Add(new OptionItem { Name = "33333333333", IsSelected=true });
io.Add(new OptionItem { Name = "44444444444",IsSelected=false });
lview.ItemsSource = io;
}
我正在像这样将数据绑定到此Listview
<ListView x:Name="lview" SelectionMode="Multiple">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name, Mode=OneWay}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
public MainPage()
{
this.InitializeComponent();
ObservableCollection<OptionItem> io = new ObservableCollection<OptionItem>();
io.Add(new OptionItem { Name = "11111111111", IsSelected=false });
io.Add(new OptionItem { Name = "22222222222", IsSelected=true });
io.Add(new OptionItem { Name = "33333333333", IsSelected=true });
io.Add(new OptionItem { Name = "44444444444",IsSelected=false });
lview.ItemsSource = io;
}
public主页()
{
this.InitializeComponent();
ObservableCollection io=新的ObservableCollection();
io.Add(新选项项{Name=“11111111”,IsSelected=false});
io.Add(新选项项{Name=“22222”,IsSelected=true});
io.Add(新选项项{Name=“33333”,IsSelected=true});
io.Add(新选项项{Name=“444”,IsSelected=false});
lview.ItemsSource=io;
}
现在您可以在我的模型中看到,我有一个名为
IsSelected
的属性。如何将其绑定到listView,以便在项目资源中选择的项目与在listView中选择的项目相同?根据您希望选择的时间,订阅listView
的事件,您可以在该事件中将所选的选项项添加到所选项目列表中:
代码
private void Lview_SizeChanged(object sender, SizeChangedEventArgs e)
{
var listView = sender as ListView;
foreach (OptionItem item in listView.Items)
{
if (item.IsSelected)
{
listView.SelectedItems.Add(item);
}
}
}
XAML
<ListView x:Name="lview" SelectionMode="Multiple" SizeChanged="Lview_SizeChanged">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name, Mode=OneWay}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
无论如何,你可能想考虑使用这样的模式,因为这样会使代码(远)更易于阅读和维护。p> 根据您希望选择发生的时间,订阅
列表视图的事件,您可以在其中将所选选项项添加到所选项目列表中:
代码
private void Lview_SizeChanged(object sender, SizeChangedEventArgs e)
{
var listView = sender as ListView;
foreach (OptionItem item in listView.Items)
{
if (item.IsSelected)
{
listView.SelectedItems.Add(item);
}
}
}
XAML
<ListView x:Name="lview" SelectionMode="Multiple" SizeChanged="Lview_SizeChanged">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name, Mode=OneWay}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
无论如何,你可能想考虑使用这样的模式,因为这样会使代码(远)更易于阅读和维护。p>