protected override void OnAppearing()
{
base.OnAppearing();
var diary = new List<DiaryProperties>();
var files = Directory.EnumerateFiles(App.FolderPath, "*.notes.txt");
foreach(var filename in files)
{
diary.Add(new DiaryProperties
{
//all properties are defined in the Models folder.
Filename=filename,
//Title=how to get title ???
Text=File.ReadAllText(filename),
Date=File.GetCreationTime(filename)
});
}
listview.ItemsSource = diary.OrderBy(d => d.Date).ToList();
}
//xaml code
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyDiary.AddNewNote"
Title="Add New Note">
<ContentPage.ToolbarItems>
<ToolbarItem Text="+"
Clicked="OnSaveClickedButton"/>
<ToolbarItem Grid.Column="1"
Text="*"
Clicked="OnDeleteClickedButton"/>
</ContentPage.ToolbarItems>
<ContentPage.Content>
<StackLayout Margin="20">
<Editor Placeholder="Title"
PlaceholderColor="#000"
Text="{Binding Title}"
HeightRequest="50"/>
<Editor Placeholder="Enter Your Note"
Text="{Binding Text}"
AutoSize="TextChanges"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>
Я определил все свойства в папке модели, я должен получить заголовок в виде списка. Если я вызываю те же функции ReadAllText, все содержимое отображается независимо от заголовка. Я отредактировал его с помощью кода xaml. пожалуйста, проверьте его снова
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyDiary.MyNotes"
Title="My Notes">
<ContentPage.ToolbarItems>
<ToolbarItem Text="+"
Clicked="OnNoteAddedClicked"/>
</ContentPage.ToolbarItems>
<ListView x:Name="listview"
Margin="20"
ItemSelected="OnListViewItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding Title}"
FontSize="18"
TextColor="#f35e20" />
<Label Text="{Binding Text}"
FontSize="15"
TextColor="#503026" />
<Label Text="{Binding Date}"
FontSize="15"
TextColor="#503026" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
приведенный выше код предназначен для отображения элементов в виде списка, и это основная страница приложения.
public AddNewNote()
{
InitializeComponent();
}
async void OnSaveClickedButton(object sender, EventArgs e)
{
var Diary = (DiaryProperties)BindingContext;
if (string.IsNullOrWhiteSpace(Diary.Filename))
{
//save
var filename = Path.Combine(App.FolderPath, $"{Path.GetRandomFileName()}.notes.txt");
File.WriteAllText(filename, Diary.Text);
}
else
{
//update
File.WriteAllText(Diary.Filename, Diary.Text);
}
await Navigation.PopAsync();
}
Приведенный выше код предназначен для сохранения новой заметки, как вы сказали, пожалуйста, дайте мне знать, что мне нужно сделать, чтобы сделать первую строку в качестве заголовка. Спасибо