vkommi Ответов: 0

Xamarin forms listview не обновляется после редактирования/сохранения данных


У меня есть главная навигационная страница JobInfoPage с ListView, содержащая всю информацию о заданиях. Когда я нажимаю кнопку/изображение, оно показывает выбранную информацию о задании, то есть заметки и название задания. Когда я редактирую и сохраняю JobNotesPage, он обновляет задание, поданное в data, но не в ListView.

Я установил привязку к JobNotes в Xaml, и TwoBinding все еще не работает.

Может ли кто-нибудь предположить, что я делаю неправильно?

Исходный код можно загрузить с сайта


https://spaces.hightail.com/receive/g8rg2VWW6o[^]

Что я уже пробовал:

I set Binding to JobNotes in Xaml and TwoBinding Still not working. 


<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"

             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"

             xmlns:local="clr-namespace:UpdateNotes"

             x:Class="UpdateNotes.JobInfoPage">
    <ContentPage.BindingContext>
        <local:JobInfoViewModel/>
    </ContentPage.BindingContext>
    <ContentPage.Resources>
        <ResourceDictionary>
            <local:NotesConverter x:Key="NotesConverter"/>
            <local:RemarksConverter x:Key="RemarksConverter"/>
        </ResourceDictionary>
    </ContentPage.Resources>
    <ContentPage.Content>
        <StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
            <ListView x:Name="JobsList" ItemsSource="{Binding JobsInfo, Mode=TwoWay}" HasUnevenRows="True"  Margin="0"  >
                <ListView.ItemTemplate>
                    <DataTemplate >
                        <ViewCell >
                            <StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Padding="5,0,5,0" Margin="0" >
                                <StackLayout Orientation="Horizontal"  HorizontalOptions="FillAndExpand" Padding="0,0,0,0" Margin="0,0,0,-3">
                                    <Label Text="{Binding JobNumber}" />
                                    <Label Text="05-07-2017" HorizontalOptions="EndAndExpand" />
                                </StackLayout>
                                <Label Text="{Binding JobName}" FontAttributes="Bold" Margin="0,-3,0,-3" TextColor="Black" VerticalOptions="StartAndExpand" />
                                <Label Text="{Binding JobNotes, Mode=TwoWay}" TextColor="Black" Margin="0,-3,0,-3" HorizontalOptions="FillAndExpand"  VerticalOptions="StartAndExpand" FontSize="Micro" IsVisible="{Binding Converter={StaticResource NotesConverter}}" FontAttributes="Italic" BackgroundColor="LightYellow" />
                                <Label Text="{Binding JobRemarks, Mode=TwoWay}" TextColor="Black" Margin="0,-3,0,2" HorizontalOptions="FillAndExpand" VerticalOptions="StartAndExpand" FontSize="Micro" IsVisible="{Binding Converter={StaticResource RemarksConverter}}" FontAttributes="Italic" BackgroundColor="LightPink" />
                            </StackLayout>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
            <StackLayout Orientation="Horizontal"  Margin="1"  HorizontalOptions="StartAndExpand" VerticalOptions="Center">
                <Image x:Name = "ViewJobText"  Margin="10" Source="JobText.png" VerticalOptions="Center" HorizontalOptions="StartAndExpand">
                    <Image.GestureRecognizers>
                        <TapGestureRecognizer Tapped="OnViewJobTextGestureTap" NumberOfTapsRequired="1" />
                    </Image.GestureRecognizers>
                </Image>
                <Image x:Name = "ViewNotes"  Margin="10" Source="Notes.png" VerticalOptions="Center" HorizontalOptions="StartAndExpand">
                    <Image.GestureRecognizers>
                        <TapGestureRecognizer Tapped="OnViewNotesGestureTap" NumberOfTapsRequired="1" />
                    </Image.GestureRecognizers>
                </Image>
                <Image x:Name = "ViewRemarks"   Margin="10" Source="Remarks.png" VerticalOptions="Center" HorizontalOptions="StartAndExpand">
                    <Image.GestureRecognizers>
                        <TapGestureRecognizer Tapped="OnViewRemarksGestureTap" NumberOfTapsRequired="1" />
                    </Image.GestureRecognizers>
                </Image>
                <!--<Button Text="View Text" HeightRequest="20"/>
                <Button x:Name = "ViewNotes" HeightRequest="20" BackgroundColor="LightYellow" BorderWidth="0" Margin="0" Image="Notes.png" TextColor="Black" Clicked="ViewNotes_Clicked"/>
                <Button Text="View Remarks" HeightRequest="20" BackgroundColor="LightPink" TextColor="Black"/>-->
            </StackLayout>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>



использование системы;
использование системы.Коллекции.Общий;
использование System.Linq;
использование System.Text;
использование системы.Нарезание резьбы.Задачи;
использование системы.ИО;
использование системы.Отражение;
использование Xamarin.Формы;
использование Xamarin.Форм.Язык XAML;

пространство имен UpdateNotes
{
[XamlCompilation(XamlCompilationOptions.Компилировать)]
публичный частичный класс JobNotesPage : ContentPage
{
Трансляция файлового потока;
Строка pdfFileName;
public JobNotesPage (JobInfo Injob)
{
//Syncfusion.Лицензирование.SyncfusionLicenseProvider.RegisterLicense("NTk1M0AzMTM2MmUzMjJlMzBEbXMzR0Ziegtzzfqwofrtsnbvr3kvbjfcyw43d3vvoe9ecu9ocjrwrulfpq==");
этот.метод InitializeComponent();
BindingContext = Injob;
if (Injob != null)
{
pdfFileName = Injob.SectionCode + Injob.JobCode + ".PDF";
}
}
охраняемых переопределить недействительными OnAppearing()
{
база.Онаппеаринг();
если (прилож.Параметр Datapath является нулем)
{
App.DataPath = DependencyService.Get<igetdatapath>().GetDataPath();

}

//fileStream = typeof(приложение).GetTypeInfo().Собрание.В Разделе Getmanifestresourcestream("UpdateNotes.Активов.Д5.формат PDF");
//pdfViewerControl.MaximumZoomPercentage = 300;
если (!строка.IsNullOrEmpty(pdfFileName))
{
var filename = путь.Комбинат(Приложение.Пути к данным, pdfFileName);
если (файл.Существует(имя файла))

{
хранилище FileStream = новый хранилище FileStream(именем, содержит filemode.Открыть);

}
}

}
охраняемых переопределить недействительными OnDisappearing()
{
база.OnDisappearing();
файловый поток.Закрывать();
}
OnInsertImageGestureTap недействительным(объект отправителя, EventArgs в электронной)
{
// ручка крана
DisplayAlert("предупреждение", "это кнопка изображения", "ОК");
}
частная асинхронного NavigateButton_OnClicked недействительным(объект отправителя, EventArgs в электронной)
{
ждите навигации.PushAsync(новый JobInfoPage());
}

частная асинхронного OnSavNotesGestureTap недействительным(объект отправителя, EventArgs в электронной)
{
JobInfo Injob = BindingContext as JobInfo;
Injob.JobNotes = txtJobNotes.Текст;

ждите навигации.PushModalAsync(новый JobInfoPage());
}

}
}

Vincent Maverick Durano

Вы должны показать код здесь. Пожалуйста, обратите внимание, что не все имеют доступ к ссылке, которую вы предоставили, или она может быть нарушена по каким-то причинам.

0 Ответов