Skip to content

Commit

Permalink
Updated the visual states of the Master Detail sample to correctly sh…
Browse files Browse the repository at this point in the history
…ow back only on narrow view
  • Loading branch information
darenm committed Oct 15, 2015
1 parent 6833858 commit 3fd7c3b
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 33 deletions.
23 changes: 12 additions & 11 deletions Samples/MasterDetail/Services/MessageService/MessageService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,31 +8,32 @@ namespace Sample.Services.MessageService
{
public partial class MessageService
{
Random _random = new Random((int)DateTime.Now.Ticks);
static ObservableCollection<Models.Message> _messages;
public ObservableCollection<Models.Message> GetMessages()
private static ObservableCollection<Message> _messages;
private readonly Random _random = new Random((int) DateTime.Now.Ticks);

public ObservableCollection<Message> GetMessages()
{
if (_messages != null)
return _messages;
_messages = new ObservableCollection<Models.Message>();
_messages = new ObservableCollection<Message>();
foreach (var item in SampleData())
{
_messages.Add(item);
}
return _messages;
}

public ObservableCollection<Models.Message> Search(string value) => GetMessages()
.Where(x => x.Subject.ToLower().Contains(value.ToLower())
|| x.From.ToLower().Contains(value.ToLower())
|| x.Body.ToLower().Contains(value.ToLower()))
.ToObservableCollection();
public ObservableCollection<Message> Search(string value) => GetMessages()
.Where(x => x.Subject.ToLower().Contains(value?.ToLower() ?? string.Empty)
|| x.From.ToLower().Contains(value?.ToLower() ?? string.Empty)
|| x.Body.ToLower().Contains(value?.ToLower() ?? string.Empty))
.ToObservableCollection();

public void DeleteMessage(Message selected)
{
GetMessages().Remove(selected);
}

public Models.Message GetMessage(string id) => GetMessages().FirstOrDefault(x => x.Id.Equals(id));
public Message GetMessage(string id) => GetMessages().FirstOrDefault(x => x.Id.Equals(id));
}
}
}
38 changes: 19 additions & 19 deletions Samples/MasterDetail/ViewModels/MainPageViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,59 +8,59 @@ namespace Sample.ViewModels
{
public class MainPageViewModel : ViewModelBase
{
Services.MessageService.MessageService _MessageService;
Services.MessageService.MessageService _messageService;

public MainPageViewModel()
{
if (!Windows.ApplicationModel.DesignMode.DesignModeEnabled)
_MessageService = new Services.MessageService.MessageService();
_messageService = new Services.MessageService.MessageService();
}

public override void OnNavigatedTo(object parameter, NavigationMode mode, IDictionary<string, object> state)
{
Messages = _MessageService.GetMessages();
Messages = _messageService.GetMessages();
Selected = Messages.First();
}

ObservableCollection<Models.Message> _Messages = default(ObservableCollection<Models.Message>);
public ObservableCollection<Models.Message> Messages { get { return _Messages; } private set { Set(ref _Messages, value); } }
ObservableCollection<Models.Message> _messages = default(ObservableCollection<Models.Message>);
public ObservableCollection<Models.Message> Messages { get { return _messages; } private set { Set(ref _messages, value); } }

string _SearchText = default(string);
public string SearchText { get { return _SearchText; } set { Set(ref _SearchText, value); } }
string _searchText = default(string);
public string SearchText { get { return _searchText; } set { Set(ref _searchText, value); } }

Models.Message _Selected = default(Models.Message);
Models.Message _selected = default(Models.Message);
public Models.Message Selected
{
get { return _Selected; }
get { return _selected; }
set
{
Set(ref _Selected, value);
Set(ref _selected, value);
if (value != null)
value.IsRead = true;
DeleteCommand.RaiseCanExecuteChanged();
}
}

DelegateCommand _DeleteCommand;
public DelegateCommand DeleteCommand => _DeleteCommand ?? (_DeleteCommand = new DelegateCommand(() =>
DelegateCommand _deleteCommand;
public DelegateCommand DeleteCommand => _deleteCommand ?? (_deleteCommand = new DelegateCommand(() =>
{
if (Selected != null)
{
_MessageService.DeleteMessage(Selected);
_messageService.DeleteMessage(Selected);
Selected = null;
}
}, () => { return Selected != null; }));

DelegateCommand _SearchCommand;
public DelegateCommand SearchCommand => _SearchCommand ?? (_SearchCommand = new DelegateCommand(() =>
DelegateCommand _searchCommand;
public DelegateCommand SearchCommand => _searchCommand ?? (_searchCommand = new DelegateCommand(() =>
{
Messages = _MessageService.Search(SearchText);
Messages = _messageService.Search(SearchText);
}));

DelegateCommand _ClearCommand;
public DelegateCommand ClearCommand => _ClearCommand ?? (_ClearCommand = new DelegateCommand(() =>
DelegateCommand _clearCommand;
public DelegateCommand ClearCommand => _clearCommand ?? (_clearCommand = new DelegateCommand(() =>
{
Messages = _MessageService.Search(SearchText = string.Empty);
Messages = _messageService.Search(SearchText = string.Empty);
}));
}
}
6 changes: 4 additions & 2 deletions Samples/MasterDetail/Views/MainPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -250,9 +250,11 @@

<Grid x:Name="NarrowContent" Grid.Row="1" Visibility="Collapsed">

<ListView x:Name="NarrowMaster" ItemTemplate="{StaticResource MessageListItemTemplate}" ItemsSource="{Binding Messages}" SelectedItem="{Binding Selected, Mode=TwoWay}">
<ListView x:Name="NarrowMaster" ItemTemplate="{StaticResource MessageListItemTemplate}"
IsItemClickEnabled="True"
ItemsSource="{Binding Messages}" SelectedItem="{Binding Selected, Mode=TwoWay}">
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior EventName="SelectionChanged">
<Core:EventTriggerBehavior EventName="ItemClick">
<b:ConditionalAction xmlns:b="using:Template10.Behaviors" LeftValue="{Binding SelectedItem, ElementName=NarrowMaster}" Operator="IsNotNull">
<Core:GoToStateAction StateName="NarrowDetailOpen" TargetObject="{Binding ElementName=ThisPage}" />
</b:ConditionalAction>
Expand Down
2 changes: 1 addition & 1 deletion Template10.sln
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9A82F6E0-3AC8-440C-AA37-714920D8FB85}.Debug|Any CPU.ActiveCfg = Debug|x86
{9A82F6E0-3AC8-440C-AA37-714920D8FB85}.Debug|Any CPU.Build.0 = Debug|x86
{9A82F6E0-3AC8-440C-AA37-714920D8FB85}.Debug|Any CPU.Deploy.0 = Debug|x86
{9A82F6E0-3AC8-440C-AA37-714920D8FB85}.Debug|ARM.ActiveCfg = Debug|ARM
{9A82F6E0-3AC8-440C-AA37-714920D8FB85}.Debug|ARM.Build.0 = Debug|ARM
{9A82F6E0-3AC8-440C-AA37-714920D8FB85}.Debug|ARM.Deploy.0 = Debug|ARM
Expand Down Expand Up @@ -251,6 +250,7 @@ Global
{AA1ADA35-B0C0-4EDF-8BAD-56D1021BE922}.Release|x86.Deploy.0 = Release|x86
{8F535C5F-6963-4C18-9B52-4EF5252CCC49}.Debug|Any CPU.ActiveCfg = Debug|x86
{8F535C5F-6963-4C18-9B52-4EF5252CCC49}.Debug|Any CPU.Build.0 = Debug|x86
{8F535C5F-6963-4C18-9B52-4EF5252CCC49}.Debug|Any CPU.Deploy.0 = Debug|x86
{8F535C5F-6963-4C18-9B52-4EF5252CCC49}.Debug|ARM.ActiveCfg = Debug|ARM
{8F535C5F-6963-4C18-9B52-4EF5252CCC49}.Debug|ARM.Build.0 = Debug|ARM
{8F535C5F-6963-4C18-9B52-4EF5252CCC49}.Debug|ARM.Deploy.0 = Debug|ARM
Expand Down
55 changes: 55 additions & 0 deletions Templates (Project)/Blank/null
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,58 @@ C:\Users\jerry\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\
C:\Users\jerry\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Properties\Template10Library.rd.xml
C:\Users\jerry\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Styles\Mdl2.xaml
9 File(s) copied
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Microsoft.Xaml.Interactions.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Microsoft.Xaml.Interactivity.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library.pri
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Template10Library.xr.xml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\HamburgerMenu.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\PageHeader.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\Resizer.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Properties\Template10Library.rd.xml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Styles\Mdl2.xaml
10 File(s) copied
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Microsoft.Xaml.Interactions.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Microsoft.Xaml.Interactivity.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library.pri
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Template10Library.xr.xml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\HamburgerMenu.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\PageHeader.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\Resizer.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Properties\Template10Library.rd.xml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Styles\Mdl2.xaml
10 File(s) copied
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Microsoft.Xaml.Interactions.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Microsoft.Xaml.Interactivity.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library.pri
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Template10Library.xr.xml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\HamburgerMenu.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\PageHeader.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\Resizer.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Properties\Template10Library.rd.xml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Styles\Mdl2.xaml
10 File(s) copied
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Microsoft.Xaml.Interactions.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Microsoft.Xaml.Interactivity.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library.pri
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Template10Library.xr.xml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\HamburgerMenu.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\PageHeader.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\Resizer.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Properties\Template10Library.rd.xml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Styles\Mdl2.xaml
10 File(s) copied
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Microsoft.Xaml.Interactions.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Microsoft.Xaml.Interactivity.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library.dll
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library.pri
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Template10Library.xr.xml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\HamburgerMenu.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\PageHeader.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Controls\Resizer.xaml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Properties\Template10Library.rd.xml
C:\Users\daren\.nuget\packages\Template10\1.0.4\build\uap10.0\..\..\lib\uap10.0\Template10Library\Styles\Mdl2.xaml
10 File(s) copied

0 comments on commit 3fd7c3b

Please sign in to comment.