Skip to content

Commit 54944a7

Browse files
committed
Use SampleCommand class dont change DataContext
1 parent 5aa3a84 commit 54944a7

File tree

3 files changed

+34
-14
lines changed

3 files changed

+34
-14
lines changed

Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ListViewExtensions/ListViewExtensionsCode.bind

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
44
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
55
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
6+
xmlns:local="using:Microsoft.Toolkit.Uwp.SampleApp.SamplePages"
67
xmlns:ui="using:Microsoft.Toolkit.Uwp.UI"
78
mc:Ignorable="d">
89

910
<Page.Resources>
11+
<local:SampleCommand x:Key="SampleCommand" />
12+
1013
<DataTemplate x:Name="NormalTemplate">
1114
<TextBlock Text="{Binding}" Foreground="Green" VerticalAlignment="Center" FontWeight="Bold"></TextBlock>
1215
</DataTemplate>
@@ -29,7 +32,7 @@
2932
Margin="12"
3033
ItemTemplate="{StaticResource NormalTemplate}"
3134
IsItemClickEnabled="True"
32-
ui:ListViewExtensions.Command="{Binding SampleCommand}"
35+
ui:ListViewExtensions.Command="{StaticResource SampleCommand}"
3336
ui:ListViewExtensions.AlternateColor="#33AAAAAA"
3437
ui:ListViewExtensions.AlternateItemTemplate="{StaticResource AlternateTemplate}"
3538
ui:ListViewExtensions.ItemContainerStretchDirection="Both">

Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ListViewExtensions/ListViewExtensionsPage.xaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
33
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
44
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
5+
xmlns:local="using:Microsoft.Toolkit.Uwp.SampleApp.SamplePages"
56
xmlns:ui="using:Microsoft.Toolkit.Uwp.UI"
67
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
78
mc:Ignorable="d">
89

910
<Page.Resources>
11+
<local:SampleCommand x:Key="SampleCommand" />
12+
1013
<DataTemplate x:Name="NormalTemplate">
1114
<TextBlock Text="{Binding}" Foreground="Green" VerticalAlignment="Center" FontWeight="Bold"></TextBlock>
1215
</DataTemplate>
@@ -22,7 +25,7 @@
2225
Margin="12"
2326
ui:ListViewExtensions.AlternateColor="#33AAAAAA"
2427
ui:ListViewExtensions.AlternateItemTemplate="{StaticResource AlternateTemplate}"
25-
ui:ListViewExtensions.Command="{Binding SampleCommand}"
28+
ui:ListViewExtensions.Command="{StaticResource SampleCommand}"
2629
ui:ListViewExtensions.ItemContainerStretchDirection="Both"
2730
IsItemClickEnabled="True"
2831
ItemTemplate="{StaticResource NormalTemplate}" />

Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ListViewExtensions/ListViewExtensionsPage.xaml.cs

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
using System;
66
using System.Collections.ObjectModel;
77
using System.Windows.Input;
8-
using Microsoft.Toolkit.Uwp.SampleApp.Common;
9-
using Microsoft.Toolkit.Uwp.SampleApp.Data;
108
using Microsoft.Toolkit.Uwp.UI;
119
using Windows.UI.Popups;
1210
using Windows.UI.Xaml;
@@ -21,8 +19,6 @@ public ListViewExtensionsPage()
2119
this.InitializeComponent();
2220
}
2321

24-
public ICommand SampleCommand => new DelegateCommand<string>(OnExecuteSampleCommand);
25-
2622
public async void OnXamlRendered(FrameworkElement control)
2723
{
2824
var sampleListView = control.FindChild("SampleListView") as ListView;
@@ -48,14 +44,6 @@ public async void OnXamlRendered(FrameworkElement control)
4844
{
4945
sampleListView.ItemsSource = GetOddEvenSource(500);
5046
}
51-
52-
// Transfer Data Context so we can access SampleCommand
53-
control.DataContext = this;
54-
}
55-
56-
private async void OnExecuteSampleCommand(string item)
57-
{
58-
await new MessageDialog($"You clicked {item} via the 'ListViewExtensions.Command' binding", "Item Clicked").ShowAsync();
5947
}
6048

6149
public ObservableCollection<string> GetOddEvenSource(int count)
@@ -71,4 +59,30 @@ public ObservableCollection<string> GetOddEvenSource(int count)
7159
return oddEvenSource;
7260
}
7361
}
62+
63+
#pragma warning disable SA1402 // File may only contain a single class
64+
internal class SampleCommand : ICommand
65+
#pragma warning restore SA1402 // File may only contain a single class
66+
{
67+
event EventHandler ICommand.CanExecuteChanged
68+
{
69+
add { }
70+
remove { }
71+
}
72+
73+
public bool CanExecute(object parameter) => true;
74+
75+
public void Execute(object parameter)
76+
{
77+
if (parameter is string s)
78+
{
79+
OnExecuteSampleCommand(s);
80+
}
81+
}
82+
83+
private static async void OnExecuteSampleCommand(string item)
84+
{
85+
await new MessageDialog($"You clicked {item} via the 'ListViewExtensions.Command' binding", "Item Clicked").ShowAsync();
86+
}
87+
}
7488
}

0 commit comments

Comments
 (0)