[UWP] Fix ListView selection issues **Behavior change** (#1157)
* Update 44886 repro * Add 59718 repro * [UWP] Don't fire a click when SelectedItem changes programmatically * Update repro for 59718 * [Core] Add Win ListView Selection mode specific * [Win] Use ListView SelectionMode specific * Fix test case * [Win] ListView sets value once when clicked * Update docs * Fix specific methods * Update docs again
This commit is contained in:
Родитель
e004fb034c
Коммит
a327f471a1
|
@ -71,7 +71,15 @@ namespace Xamarin.Forms.Controls.Issues
|
|||
|
||||
void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
|
||||
{
|
||||
if (e.SelectedItem == null)
|
||||
{
|
||||
return; //ItemSelected is called on deselection, which results in SelectedItem being set to null
|
||||
}
|
||||
|
||||
_vm.Count++;
|
||||
|
||||
ListView lst = (ListView)sender;
|
||||
lst.SelectedItem = null;
|
||||
}
|
||||
|
||||
#if UITEST
|
||||
|
|
|
@ -0,0 +1,146 @@
|
|||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using Xamarin.Forms.CustomAttributes;
|
||||
using Xamarin.Forms.Internals;
|
||||
using System.Collections.Generic;
|
||||
using Xamarin.Forms.PlatformConfiguration;
|
||||
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
|
||||
|
||||
#if UITEST
|
||||
using NUnit.Framework;
|
||||
#endif
|
||||
|
||||
namespace Xamarin.Forms.Controls.Issues
|
||||
{
|
||||
[Preserve(AllMembers = true)]
|
||||
[Issue(IssueTracker.Bugzilla, 59718, "Multiple issues with listview and navigation in UWP", PlatformAffected.UWP)]
|
||||
public class Bugzilla59718 : TestContentPage
|
||||
{
|
||||
const string GoBackButtonId = "GoBackButtonId";
|
||||
const string Target1 = "Label with TapGesture Cricket";
|
||||
const string Target1b = "Label with TapGesture Cricket Tapped!";
|
||||
const string Target2 = "Label with no TapGesture Cricket";
|
||||
const string Target3 = "You came here from Cricket.";
|
||||
|
||||
Label _ItemTappedLabel;
|
||||
Label _LabelTappedLabel;
|
||||
ListView _list;
|
||||
|
||||
class Grouping<K, T> : ObservableCollection<T>
|
||||
{
|
||||
public K Key { get; private set; }
|
||||
|
||||
public Grouping(K key, IEnumerable<T> items)
|
||||
{
|
||||
Key = key;
|
||||
foreach (var item in items)
|
||||
this.Items.Add(item);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Init()
|
||||
{
|
||||
_LabelTappedLabel = new Label { TextColor = Color.Red };
|
||||
_ItemTappedLabel = new Label { TextColor = Color.Purple };
|
||||
|
||||
_list = new ListView
|
||||
{
|
||||
IsGroupingEnabled = true,
|
||||
GroupDisplayBinding = new Binding("Key"),
|
||||
ItemTemplate = new DataTemplate(() =>
|
||||
{
|
||||
var tapLabel = new Label();
|
||||
tapLabel.SetBinding(Label.TextProperty, ".", stringFormat: "Label with TapGesture {0}");
|
||||
|
||||
var tap = new TapGestureRecognizer();
|
||||
tap.Tapped += (s, e) =>
|
||||
{
|
||||
_LabelTappedLabel.Text = $"{tapLabel.Text} Tapped!";
|
||||
};
|
||||
|
||||
tapLabel.GestureRecognizers.Add(tap);
|
||||
|
||||
var noTap = new Label();
|
||||
noTap.SetBinding(Label.TextProperty, ".", stringFormat: "Label with no TapGesture {0}");
|
||||
|
||||
var view = new ViewCell { View = new StackLayout { Children = { noTap, tapLabel } } };
|
||||
return view;
|
||||
})
|
||||
};
|
||||
|
||||
_list.On<Windows>().SetSelectionMode(ListViewSelectionMode.Inaccessible);
|
||||
|
||||
_list.ItemTapped += ListView_ItemTapped;
|
||||
|
||||
Content = new StackLayout { Children = { _LabelTappedLabel, _ItemTappedLabel, _list } };
|
||||
}
|
||||
|
||||
protected override void OnAppearing()
|
||||
{
|
||||
_list.ItemsSource = new ObservableCollection<Grouping<string, string>>
|
||||
{
|
||||
new Grouping<string, string>("Sports", new string[] {"Cricket", "Football" }),
|
||||
new Grouping<string, string>("Mobile", new string[] {"Samsung", "Apple" }),
|
||||
new Grouping<string, string>("Microsoft", new string[] {"Office", "Windows" }),
|
||||
new Grouping<string, string>("Games", new string[] {"Online", "Offline" }),
|
||||
new Grouping<string, string>("Test", new string[] {"test1", "test2" }),
|
||||
new Grouping<string, string>("Variable", new string[] {"String", "Int" }),
|
||||
}; ;
|
||||
|
||||
base.OnAppearing();
|
||||
}
|
||||
|
||||
async void ListView_ItemTapped(object sender, ItemTappedEventArgs e)
|
||||
{
|
||||
_ItemTappedLabel.Text = $"{e.Item}";
|
||||
|
||||
await Navigation.PushAsync(new NextPage(_ItemTappedLabel.Text));
|
||||
|
||||
((ListView)sender).SelectedItem = null;
|
||||
}
|
||||
|
||||
class NextPage : ContentPage
|
||||
{
|
||||
public NextPage(string source)
|
||||
{
|
||||
var button = new Button { Text = "Go back", AutomationId = GoBackButtonId };
|
||||
button.Clicked += Button_Clicked;
|
||||
Content = new StackLayout
|
||||
{
|
||||
Children = {
|
||||
new Label { Text = $"You came here from {source}." },
|
||||
button
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
async void Button_Clicked(object sender, System.EventArgs e)
|
||||
{
|
||||
await Navigation.PopAsync();
|
||||
}
|
||||
}
|
||||
|
||||
#if UITEST
|
||||
[Test]
|
||||
public void Bugzilla59718Test()
|
||||
{
|
||||
RunningApp.WaitForElement(q => q.Marked(Target1));
|
||||
RunningApp.Tap(q => q.Marked(Target1));
|
||||
|
||||
RunningApp.WaitForElement(q => q.Marked(Target1b));
|
||||
|
||||
RunningApp.WaitForElement(q => q.Marked(Target2));
|
||||
RunningApp.Tap(q => q.Marked(Target2));
|
||||
|
||||
RunningApp.WaitForElement(q => q.Marked(Target3));
|
||||
|
||||
RunningApp.WaitForElement(q => q.Marked(GoBackButtonId));
|
||||
RunningApp.Tap(q => q.Marked(GoBackButtonId));
|
||||
|
||||
RunningApp.WaitForElement(q => q.Marked(Target1));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
|
@ -332,6 +332,7 @@
|
|||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla27731.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla59097.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla58875.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla59718.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)_Template.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla42620.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Issue1028.cs" />
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
using System;
|
||||
|
||||
namespace Xamarin.Forms.PlatformConfiguration.WindowsSpecific
|
||||
{
|
||||
using FormsElement = Forms.ListView;
|
||||
|
||||
public static class ListView
|
||||
{
|
||||
#region SelectionMode
|
||||
|
||||
public static readonly BindableProperty SelectionModeProperty =
|
||||
BindableProperty.CreateAttached("SelectionMode", typeof(ListViewSelectionMode),
|
||||
typeof(ListView), ListViewSelectionMode.Accessible);
|
||||
|
||||
public static ListViewSelectionMode GetSelectionMode(BindableObject element)
|
||||
{
|
||||
return (ListViewSelectionMode)element.GetValue(SelectionModeProperty);
|
||||
}
|
||||
|
||||
public static void SetSelectionMode(BindableObject element, ListViewSelectionMode value)
|
||||
{
|
||||
element.SetValue(SelectionModeProperty, value);
|
||||
}
|
||||
|
||||
public static ListViewSelectionMode GetSelectionMode(this IPlatformElementConfiguration<Windows, FormsElement> config)
|
||||
{
|
||||
return (ListViewSelectionMode)config.Element.GetValue(SelectionModeProperty);
|
||||
}
|
||||
|
||||
public static IPlatformElementConfiguration<Windows, FormsElement> SetSelectionMode(
|
||||
this IPlatformElementConfiguration<Windows, FormsElement> config, ListViewSelectionMode value)
|
||||
{
|
||||
config.Element.SetValue(SelectionModeProperty, value);
|
||||
return config;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
public enum ListViewSelectionMode
|
||||
{
|
||||
/// <summary>
|
||||
/// Allows ListItems to have TapGestures. The Enter key and Narrator will not fire the ItemTapped event.
|
||||
/// </summary>
|
||||
Inaccessible,
|
||||
/// <summary>
|
||||
/// Allows the Enter key and Narrator to fire the ItemTapped event. ListItems cannot have TapGestures.
|
||||
/// </summary>
|
||||
Accessible
|
||||
}
|
||||
}
|
|
@ -113,6 +113,7 @@
|
|||
<Compile Include="PlatformConfiguration\iOSSpecific\UIStatusBarAnimation.cs" />
|
||||
<Compile Include="PlatformConfiguration\iOSSpecific\UpdateMode.cs" />
|
||||
<Compile Include="PlatformConfiguration\iOSSpecific\VisualElement.cs" />
|
||||
<Compile Include="PlatformConfiguration\WindowsSpecific\ListView.cs" />
|
||||
<Compile Include="PlatformConfiguration\WindowsSpecific\MasterDetailPage.cs" />
|
||||
<Compile Include="PlatformConfiguration\WindowsSpecific\CollapseStyle.cs" />
|
||||
<Compile Include="Configuration.cs" />
|
||||
|
|
|
@ -14,6 +14,8 @@ using WListView = Windows.UI.Xaml.Controls.ListView;
|
|||
using WBinding = Windows.UI.Xaml.Data.Binding;
|
||||
using WApp = Windows.UI.Xaml.Application;
|
||||
using Xamarin.Forms.Internals;
|
||||
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
|
||||
using Specifics = Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListView;
|
||||
|
||||
#if WINDOWS_UWP
|
||||
|
||||
|
@ -26,6 +28,9 @@ namespace Xamarin.Forms.Platform.WinRT
|
|||
public class ListViewRenderer : ViewRenderer<ListView, FrameworkElement>
|
||||
{
|
||||
ITemplatedItemsView<Cell> TemplatedItemsView => Element;
|
||||
bool _itemWasClicked;
|
||||
bool _subscribedToItemClick;
|
||||
bool _subscribedToTapped;
|
||||
|
||||
|
||||
#if !WINDOWS_UWP
|
||||
|
@ -72,9 +77,6 @@ namespace Xamarin.Forms.Platform.WinRT
|
|||
GroupStyleSelector = (GroupStyleSelector)WApp.Current.Resources["ListViewGroupSelector"]
|
||||
};
|
||||
|
||||
List.IsItemClickEnabled = true;
|
||||
List.ItemClick += OnListItemClicked;
|
||||
|
||||
List.SelectionChanged += OnControlSelectionChanged;
|
||||
|
||||
List.SetBinding(ItemsControl.ItemsSourceProperty, "");
|
||||
|
@ -92,6 +94,7 @@ namespace Xamarin.Forms.Platform.WinRT
|
|||
UpdateGrouping();
|
||||
UpdateHeader();
|
||||
UpdateFooter();
|
||||
UpdateSelectionMode();
|
||||
ClearSizeEstimate();
|
||||
}
|
||||
}
|
||||
|
@ -129,13 +132,26 @@ namespace Xamarin.Forms.Platform.WinRT
|
|||
ClearSizeEstimate();
|
||||
((CollectionViewSource)List.DataContext).Source = Element.ItemsSource;
|
||||
}
|
||||
else if (e.PropertyName == Specifics.SelectionModeProperty.PropertyName)
|
||||
{
|
||||
UpdateSelectionMode();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (List != null)
|
||||
{
|
||||
if (_subscribedToTapped)
|
||||
{
|
||||
_subscribedToTapped = false;
|
||||
List.Tapped -= ListOnTapped;
|
||||
}
|
||||
if (_subscribedToItemClick)
|
||||
{
|
||||
_subscribedToItemClick = false;
|
||||
List.ItemClick -= OnListItemClicked;
|
||||
}
|
||||
List.SelectionChanged -= OnControlSelectionChanged;
|
||||
|
||||
List.DataContext = null;
|
||||
|
@ -246,6 +262,44 @@ namespace Xamarin.Forms.Platform.WinRT
|
|||
}
|
||||
}
|
||||
|
||||
void UpdateSelectionMode()
|
||||
{
|
||||
if (Element.OnThisPlatform().GetSelectionMode() == PlatformConfiguration.WindowsSpecific.ListViewSelectionMode.Accessible)
|
||||
{
|
||||
// Using Tapped will disable the ability to use the Enter key
|
||||
List.IsItemClickEnabled = true;
|
||||
if (!_subscribedToItemClick)
|
||||
{
|
||||
_subscribedToItemClick = true;
|
||||
List.ItemClick += OnListItemClicked;
|
||||
}
|
||||
|
||||
if (_subscribedToTapped)
|
||||
{
|
||||
_subscribedToTapped = false;
|
||||
List.Tapped -= ListOnTapped;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// In order to support tapping on elements within a list item, we handle
|
||||
// ListView.Tapped (which can be handled by child elements in the list items
|
||||
// and prevented from bubbling up) rather than ListView.ItemClick
|
||||
if (!_subscribedToTapped)
|
||||
{
|
||||
_subscribedToTapped = true;
|
||||
List.Tapped += ListOnTapped;
|
||||
}
|
||||
|
||||
List.IsItemClickEnabled = false;
|
||||
if (_subscribedToItemClick)
|
||||
{
|
||||
_subscribedToItemClick = false;
|
||||
List.ItemClick -= OnListItemClicked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async void OnViewChangeCompleted(object sender, SemanticZoomViewChangedEventArgs e)
|
||||
{
|
||||
if (e.IsSourceZoomedInView)
|
||||
|
@ -399,6 +453,32 @@ namespace Xamarin.Forms.Platform.WinRT
|
|||
return _scrollViewer;
|
||||
}
|
||||
|
||||
void ListOnTapped(object sender, TappedRoutedEventArgs args)
|
||||
{
|
||||
var orig = args.OriginalSource as DependencyObject;
|
||||
int index = -1;
|
||||
|
||||
// Work our way up the tree until we find the actual list item
|
||||
// the user tapped on
|
||||
|
||||
while (orig != null && orig != List)
|
||||
{
|
||||
var lv = orig as ListViewItem;
|
||||
if (lv != null)
|
||||
{
|
||||
index = TemplatedItemsView.TemplatedItems.GetGlobalIndexOfItem(lv.Content);
|
||||
break;
|
||||
}
|
||||
|
||||
orig = VisualTreeHelper.GetParent(orig);
|
||||
}
|
||||
|
||||
if (index > -1)
|
||||
{
|
||||
OnListItemClicked(index);
|
||||
}
|
||||
}
|
||||
|
||||
void OnElementItemSelected(object sender, SelectedItemChangedEventArgs e)
|
||||
{
|
||||
if (Element == null)
|
||||
|
@ -451,6 +531,7 @@ namespace Xamarin.Forms.Platform.WinRT
|
|||
#endif
|
||||
|
||||
Element.NotifyRowTapped(index, cell: null);
|
||||
_itemWasClicked = true;
|
||||
|
||||
#if !WINDOWS_UWP
|
||||
|
||||
|
@ -483,6 +564,7 @@ namespace Xamarin.Forms.Platform.WinRT
|
|||
|
||||
void OnControlSelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
#if !WINDOWS_UWP
|
||||
RestorePreviousSelectedVisual();
|
||||
|
||||
if (e.AddedItems.Count == 0)
|
||||
|
@ -500,7 +582,6 @@ namespace Xamarin.Forms.Platform.WinRT
|
|||
if (cell == null)
|
||||
return;
|
||||
|
||||
#if !WINDOWS_UWP
|
||||
if (Device.Idiom == TargetIdiom.Phone)
|
||||
{
|
||||
FrameworkElement element = FindElement(cell);
|
||||
|
@ -510,8 +591,10 @@ namespace Xamarin.Forms.Platform.WinRT
|
|||
}
|
||||
}
|
||||
#endif
|
||||
if (Element.SelectedItem != List.SelectedItem)
|
||||
if (Element.SelectedItem != List.SelectedItem && !_itemWasClicked)
|
||||
((IElementController)Element).SetValueFromRenderer(ListView.SelectedItemProperty, List.SelectedItem);
|
||||
|
||||
_itemWasClicked = false;
|
||||
}
|
||||
|
||||
FrameworkElement FindElement(object cell)
|
||||
|
@ -525,15 +608,8 @@ namespace Xamarin.Forms.Platform.WinRT
|
|||
return null;
|
||||
}
|
||||
|
||||
#if WINDOWS_UWP
|
||||
void RestorePreviousSelectedVisual()
|
||||
{
|
||||
}
|
||||
#if !WINDOWS_UWP
|
||||
|
||||
void SetSelectedVisual(FrameworkElement element)
|
||||
{
|
||||
}
|
||||
#else
|
||||
void RestorePreviousSelectedVisual()
|
||||
{
|
||||
foreach (BrushedElement highlight in _highlightedElements)
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -0,0 +1,116 @@
|
|||
<Type Name="ListView" FullName="Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListView">
|
||||
<TypeSignature Language="C#" Value="public static class ListView" />
|
||||
<TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit ListView extends System.Object" />
|
||||
<AssemblyInfo>
|
||||
<AssemblyName>Xamarin.Forms.Core</AssemblyName>
|
||||
<AssemblyVersion>2.0.0.0</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<Base>
|
||||
<BaseTypeName>System.Object</BaseTypeName>
|
||||
</Base>
|
||||
<Interfaces />
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
<remarks>To be added.</remarks>
|
||||
</Docs>
|
||||
<Members>
|
||||
<Member MemberName="GetSelectionMode">
|
||||
<MemberSignature Language="C#" Value="public static Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode GetSelectionMode (Xamarin.Forms.BindableObject element);" />
|
||||
<MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode GetSelectionMode(class Xamarin.Forms.BindableObject element) cil managed" />
|
||||
<MemberType>Method</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>2.0.0.0</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode</ReturnType>
|
||||
</ReturnValue>
|
||||
<Parameters>
|
||||
<Parameter Name="element" Type="Xamarin.Forms.BindableObject" />
|
||||
</Parameters>
|
||||
<Docs>
|
||||
<param name="element">To be added.</param>
|
||||
<summary>To be added.</summary>
|
||||
<returns>To be added.</returns>
|
||||
<remarks>To be added.</remarks>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="GetSelectionMode">
|
||||
<MemberSignature Language="C#" Value="public static Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode GetSelectionMode (this Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView> config);" />
|
||||
<MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode GetSelectionMode(class Xamarin.Forms.IPlatformElementConfiguration`2<class Xamarin.Forms.PlatformConfiguration.Windows, class Xamarin.Forms.ListView> config) cil managed" />
|
||||
<MemberType>Method</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>2.0.0.0</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode</ReturnType>
|
||||
</ReturnValue>
|
||||
<Parameters>
|
||||
<Parameter Name="config" Type="Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView>" RefType="this" />
|
||||
</Parameters>
|
||||
<Docs>
|
||||
<param name="config">To be added.</param>
|
||||
<summary>To be added.</summary>
|
||||
<returns>To be added.</returns>
|
||||
<remarks>To be added.</remarks>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="SelectionModeProperty">
|
||||
<MemberSignature Language="C#" Value="public static readonly Xamarin.Forms.BindableProperty SelectionModeProperty;" />
|
||||
<MemberSignature Language="ILAsm" Value=".field public static initonly class Xamarin.Forms.BindableProperty SelectionModeProperty" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>2.0.0.0</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Xamarin.Forms.BindableProperty</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
<remarks>To be added.</remarks>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="SetSelectionMode">
|
||||
<MemberSignature Language="C#" Value="public static void SetSelectionMode (Xamarin.Forms.BindableObject element, Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode value);" />
|
||||
<MemberSignature Language="ILAsm" Value=".method public static hidebysig void SetSelectionMode(class Xamarin.Forms.BindableObject element, valuetype Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode value) cil managed" />
|
||||
<MemberType>Method</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>2.0.0.0</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>System.Void</ReturnType>
|
||||
</ReturnValue>
|
||||
<Parameters>
|
||||
<Parameter Name="element" Type="Xamarin.Forms.BindableObject" />
|
||||
<Parameter Name="value" Type="Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode" />
|
||||
</Parameters>
|
||||
<Docs>
|
||||
<param name="element">To be added.</param>
|
||||
<param name="value">To be added.</param>
|
||||
<summary>To be added.</summary>
|
||||
<remarks>To be added.</remarks>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="SetSelectionMode">
|
||||
<MemberSignature Language="C#" Value="public static Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView> SetSelectionMode (this Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView> config, Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode value);" />
|
||||
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class Xamarin.Forms.IPlatformElementConfiguration`2<class Xamarin.Forms.PlatformConfiguration.Windows, class Xamarin.Forms.ListView> SetSelectionMode(class Xamarin.Forms.IPlatformElementConfiguration`2<class Xamarin.Forms.PlatformConfiguration.Windows, class Xamarin.Forms.ListView> config, valuetype Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode value) cil managed" />
|
||||
<MemberType>Method</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>2.0.0.0</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView></ReturnType>
|
||||
</ReturnValue>
|
||||
<Parameters>
|
||||
<Parameter Name="config" Type="Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView>" RefType="this" />
|
||||
<Parameter Name="value" Type="Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode" />
|
||||
</Parameters>
|
||||
<Docs>
|
||||
<param name="config">To be added.</param>
|
||||
<param name="value">To be added.</param>
|
||||
<summary>To be added.</summary>
|
||||
<returns>To be added.</returns>
|
||||
<remarks>To be added.</remarks>
|
||||
</Docs>
|
||||
</Member>
|
||||
</Members>
|
||||
</Type>
|
|
@ -0,0 +1,45 @@
|
|||
<Type Name="ListViewSelectionMode" FullName="Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode">
|
||||
<TypeSignature Language="C#" Value="public enum ListViewSelectionMode" />
|
||||
<TypeSignature Language="ILAsm" Value=".class public auto ansi sealed ListViewSelectionMode extends System.Enum" />
|
||||
<AssemblyInfo>
|
||||
<AssemblyName>Xamarin.Forms.Core</AssemblyName>
|
||||
<AssemblyVersion>2.0.0.0</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<Base>
|
||||
<BaseTypeName>System.Enum</BaseTypeName>
|
||||
</Base>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
<remarks>To be added.</remarks>
|
||||
</Docs>
|
||||
<Members>
|
||||
<Member MemberName="Accessible">
|
||||
<MemberSignature Language="C#" Value="Accessible" />
|
||||
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode Accessible = int32(1)" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>2.0.0.0</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
</Member>
|
||||
<Member MemberName="Inaccessible">
|
||||
<MemberSignature Language="C#" Value="Inaccessible" />
|
||||
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode Inaccessible = int32(0)" />
|
||||
<MemberType>Field</MemberType>
|
||||
<AssemblyInfo>
|
||||
<AssemblyVersion>2.0.0.0</AssemblyVersion>
|
||||
</AssemblyInfo>
|
||||
<ReturnValue>
|
||||
<ReturnType>Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode</ReturnType>
|
||||
</ReturnValue>
|
||||
<Docs>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
</Member>
|
||||
</Members>
|
||||
</Type>
|
|
@ -536,6 +536,8 @@
|
|||
</Namespace>
|
||||
<Namespace Name="Xamarin.Forms.PlatformConfiguration.WindowsSpecific">
|
||||
<Type Name="CollapseStyle" Kind="Enumeration" />
|
||||
<Type Name="ListView" Kind="Class" />
|
||||
<Type Name="ListViewSelectionMode" Kind="Enumeration" />
|
||||
<Type Name="MasterDetailPage" Kind="Class" />
|
||||
<Type Name="Page" Kind="Class" />
|
||||
<Type Name="ToolbarPlacement" Kind="Enumeration" />
|
||||
|
@ -2653,6 +2655,50 @@
|
|||
<Link Type="Xamarin.Forms.PlatformConfiguration.macOSSpecific.TabbedPage" Member="M:Xamarin.Forms.PlatformConfiguration.macOSSpecific.TabbedPage.ShowTabsOnNavigation(Xamarin.Forms.IPlatformElementConfiguration{Xamarin.Forms.PlatformConfiguration.macOS,Xamarin.Forms.TabbedPage})" />
|
||||
</Member>
|
||||
</ExtensionMethod>
|
||||
<ExtensionMethod>
|
||||
<Targets>
|
||||
<Target Type="T:Xamarin.Forms.IPlatformElementConfiguration`2" />
|
||||
</Targets>
|
||||
<Member MemberName="GetSelectionMode">
|
||||
<MemberSignature Language="C#" Value="public static Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode GetSelectionMode (this Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView> config);" />
|
||||
<MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode GetSelectionMode(class Xamarin.Forms.IPlatformElementConfiguration`2<class Xamarin.Forms.PlatformConfiguration.Windows, class Xamarin.Forms.ListView> config) cil managed" />
|
||||
<MemberType>ExtensionMethod</MemberType>
|
||||
<ReturnValue>
|
||||
<ReturnType>Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode</ReturnType>
|
||||
</ReturnValue>
|
||||
<Parameters>
|
||||
<Parameter Name="config" Type="Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView>" RefType="this" />
|
||||
</Parameters>
|
||||
<Docs>
|
||||
<param name="config">To be added.</param>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
<Link Type="Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListView" Member="M:Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListView.GetSelectionMode(Xamarin.Forms.IPlatformElementConfiguration{Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView})" />
|
||||
</Member>
|
||||
</ExtensionMethod>
|
||||
<ExtensionMethod>
|
||||
<Targets>
|
||||
<Target Type="T:Xamarin.Forms.IPlatformElementConfiguration`2" />
|
||||
</Targets>
|
||||
<Member MemberName="SetSelectionMode">
|
||||
<MemberSignature Language="C#" Value="public static Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView> SetSelectionMode (this Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView> config, Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode value);" />
|
||||
<MemberSignature Language="ILAsm" Value=".method public static hidebysig class Xamarin.Forms.IPlatformElementConfiguration`2<class Xamarin.Forms.PlatformConfiguration.Windows, class Xamarin.Forms.ListView> SetSelectionMode(class Xamarin.Forms.IPlatformElementConfiguration`2<class Xamarin.Forms.PlatformConfiguration.Windows, class Xamarin.Forms.ListView> config, valuetype Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode value) cil managed" />
|
||||
<MemberType>ExtensionMethod</MemberType>
|
||||
<ReturnValue>
|
||||
<ReturnType>Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView></ReturnType>
|
||||
</ReturnValue>
|
||||
<Parameters>
|
||||
<Parameter Name="config" Type="Xamarin.Forms.IPlatformElementConfiguration<Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView>" RefType="this" />
|
||||
<Parameter Name="value" Type="Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode" />
|
||||
</Parameters>
|
||||
<Docs>
|
||||
<param name="config">To be added.</param>
|
||||
<param name="value">To be added.</param>
|
||||
<summary>To be added.</summary>
|
||||
</Docs>
|
||||
<Link Type="Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListView" Member="M:Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListView.SetSelectionMode(Xamarin.Forms.IPlatformElementConfiguration{Xamarin.Forms.PlatformConfiguration.Windows,Xamarin.Forms.ListView},Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode)" />
|
||||
</Member>
|
||||
</ExtensionMethod>
|
||||
<ExtensionMethod>
|
||||
<Targets>
|
||||
<Target Type="T:Xamarin.Forms.IPlatformElementConfiguration`2" />
|
||||
|
|
Загрузка…
Ссылка в новой задаче