Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从ItemSource中选择ListView项_C#_Xaml_Listview_Uwp_Uwp Xaml - Fatal编程技术网

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>