1
0
Fork 0
mirror of https://github.com/Nioux/AideDeJeu.git synced 2025-10-30 15:06:06 +00:00

Binding compilé sur vue item

This commit is contained in:
Yan Maniez 2019-10-14 11:34:00 +02:00
parent 35bf6435e9
commit b151e42240
3 changed files with 41 additions and 23 deletions

View file

@ -27,7 +27,18 @@ namespace AideDeJeu.ViewModels.Library
CancellationTokenSource cancellationTokenSource; CancellationTokenSource cancellationTokenSource;
public ItemViewModel(Item item = null) public ItemViewModel()
{
LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommandAsync().ConfigureAwait(false));
SearchCommand = new Command<string>((text) =>
{
if (Filter != null)
{
Filter.SearchText = text;
}
});
}
public ItemViewModel(Item item)
{ {
Title = item?.Name; Title = item?.Name;
Item = item; Item = item;

View file

@ -3,10 +3,16 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:tools="clr-namespace:AideDeJeu.Tools" xmlns:tools="clr-namespace:AideDeJeu.Tools"
xmlns:mdview="clr-namespace:Xam.Forms.Markdown" xmlns:mdview="clr-namespace:Xam.Forms.Markdown"
xmlns:libvm="clr-namespace:AideDeJeu.ViewModels.Library"
xmlns:lib="clr-namespace:AideDeJeuLib"
x:Class="AideDeJeu.Views.Library.ItemPage" x:Class="AideDeJeu.Views.Library.ItemPage"
Title="{Binding Title}" Title="{Binding Title}"
Icon="spell_book.png" Icon="spell_book.png"
x:Name="This"> x:Name="This"
x:DataType="libvm:ItemViewModel">
<ContentPage.BindingContext>
<libvm:ItemViewModel />
</ContentPage.BindingContext>
<ContentPage.Resources> <ContentPage.Resources>
<ResourceDictionary> <ResourceDictionary>
<tools:MonsterMarkdownTheme x:Key="MonsterMarkdownTheme" /> <tools:MonsterMarkdownTheme x:Key="MonsterMarkdownTheme" />
@ -27,16 +33,16 @@
NavigateToLinkCommand="{Binding Main.Navigator.NavigateToLinkCommand}" NavigateToLinkCommand="{Binding Main.Navigator.NavigateToLinkCommand}"
/> />
</ScrollView>--> </ScrollView>-->
<ListView Grid.Column="0" Grid.Row="0" x:Name="ItemsListView" ItemsSource="{Binding Item.Children}" VerticalOptions="FillAndExpand" HasUnevenRows="true" CachingStrategy="RecycleElement" SelectedItem="{Binding Item.SelectedItem}" ItemTapped="ItemsListView_ItemTapped"> <ListView Grid.Column="0" Grid.Row="0" x:Name="ItemsListView" ItemsSource="{Binding Children}" VerticalOptions="FillAndExpand" HasUnevenRows="true" CachingStrategy="RecycleElement" SelectedItem="{Binding SelectedItem}" ItemTapped="ItemsListView_ItemTapped">
<ListView.Header> <ListView.Header>
<mdview:MarkdownView <mdview:MarkdownView
Theme="{StaticResource MonsterMarkdownTheme}" Theme="{StaticResource MonsterMarkdownTheme}"
Markdown="{Binding Item.Item.Markdown}" Markdown="{Binding Item.Markdown}"
NavigateToLinkCommand="{Binding Main.Navigator.NavigateToLinkCommand}" NavigateToLinkCommand="{Binding Main.Navigator.NavigateToLinkCommand}"
/> />
</ListView.Header> </ListView.Header>
<ListView.ItemTemplate> <ListView.ItemTemplate>
<DataTemplate> <DataTemplate x:DataType="lib:Item">
<ViewCell> <ViewCell>
<StackLayout Padding="10" Orientation="Vertical"> <StackLayout Padding="10" Orientation="Vertical">
<Label Text="{Binding Name}" LineBreakMode="WordWrap" TextColor="{StaticResource HDBlue}" Style="{Binding NameLevel,Converter={StaticResource HeaderLevelToStyleConverter}, ConverterParameter=2}" /> <Label Text="{Binding Name}" LineBreakMode="WordWrap" TextColor="{StaticResource HDBlue}" Style="{Binding NameLevel,Converter={StaticResource HeaderLevelToStyleConverter}, ConverterParameter=2}" />

View file

@ -20,36 +20,37 @@ namespace AideDeJeu.Views.Library
[QueryProperty("Path", "path")] [QueryProperty("Path", "path")]
public partial class ItemPage : ContentPage, INotifyPropertyChanged public partial class ItemPage : ContentPage, INotifyPropertyChanged
{ {
public MainViewModel Main //public MainViewModel Main
{ //{
get // get
{ // {
return DependencyService.Get<MainViewModel>(); // return DependencyService.Get<MainViewModel>();
} // }
} //}
private ItemViewModel _Item = new ItemViewModel(); //private ItemViewModel _Item = new ItemViewModel();
public ItemViewModel Item public ItemViewModel Item
{ {
get get
{ {
return _Item; return BindingContext as ItemViewModel;
} //return _Item;
set
{
SetProperty(ref _Item, value);
} }
//set
//{
// SetProperty(ref _Item, value);
//}
} }
public ItemPage() public ItemPage()
{ {
BindingContext = this; //BindingContext = this;
InitializeComponent(); InitializeComponent();
} }
public ItemPage(string id) public ItemPage(string id)
{ {
BindingContext = this; //BindingContext = this;
InitializeComponent(); InitializeComponent();
Path = id; Path = id;
//LoadPageAsync(); //LoadPageAsync();
@ -57,7 +58,7 @@ namespace AideDeJeu.Views.Library
public ItemPage(ItemViewModel itemViewModel) public ItemPage(ItemViewModel itemViewModel)
{ {
BindingContext = this; //BindingContext = this;
InitializeComponent(); InitializeComponent();
Path = itemViewModel.Item.Id; Path = itemViewModel.Item.Id;
//Item = itemViewModel; //Item = itemViewModel;
@ -72,13 +73,13 @@ namespace AideDeJeu.Views.Library
protected override void OnAppearing() protected override void OnAppearing()
{ {
base.OnAppearing(); base.OnAppearing();
Main.CurrentItem = Item; Item.Main.CurrentItem = Item;
} }
protected override void OnDisappearing() protected override void OnDisappearing()
{ {
base.OnDisappearing(); base.OnDisappearing();
Main.CurrentItem = null; Item.Main.CurrentItem = null;
} }
private string _Path { get; set; } = null; //"index.md"; private string _Path { get; set; } = null; //"index.md";
public string Path public string Path