У меня возникла проблема с longlistselector в приложении Windows Phone 8. После выбора и редактирования записи из longlistselector и отправки изменений в мою локальную базу данных longlistselector не отображает обновленное имя, если вы не закрываете и не открываете приложение повторно. Данные, безусловно, обновляются, его просто не показывают. Есть ли способ выбрать список, пока приложение все еще открыто? Это Xaml для списка:Перезагрузка LongListSelector с обновленными данными из локальной базы данных - Windows Phone 8
<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<phone:LongListSelector x:Name="llsModules"
Margin="0,0,-12,0"
ItemsSource="{Binding Modules}"
SelectionChanged="llsModules_SelectionChanged">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,17">
<StackPanel Orientation="Horizontal">
<Grid HorizontalAlignment="Stretch" Width="420" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name,StringFormat='Name: {0}'}"
TextWrapping="Wrap"
MaxWidth="300"
Style="{StaticResource PhoneTextLargeStyle}"
HorizontalAlignment="Left"
Grid.Row="1"
/>
</Grid>
</StackPanel>
И это код позади.
public ModulePage()
{
InitializeComponent();
DataContext = App.ViewModel;
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
App.ViewModel.LoadModulesData();
llsModules.ItemsSource = App.ViewModel.Module;
}
private void llsModules_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (llsModules.SelectedItem == null)
return;
NavigationService.Navigate(new Uri("/ModuleDetails.xaml?moduleid=" + (llsModules.SelectedItem as Modules).Id, UriKind.Relative));
}
И это модель данных
[Table(Name = "Modules")]
public class Modules : INotifyPropertyChanged, INotifyPropertyChanging
{
public Modules()
{
}
private int _id;
[Column(IsPrimaryKey = true, IsDbGenerated = true, DbType = "INT NOT NULL Identity", CanBeNull = false, AutoSync = AutoSync.OnInsert)]
public int Id
{
get
{
return _id;
}
set
{
if (_id != value)
{
NotifyPropertyChanging("Id");
_id = value;
NotifyPropertyChanged("Id");
}
}
}
private string _name;
[Column(DbType = "nvarchar(255)", CanBeNull = false)]
public string Name
{
get
{
return _name;
}
set
{
if (value == "")
throw new Exception("Module Name is a required field");
if (_name != value)
{
NotifyPropertyChanging("Name");
_name = value;
NotifyPropertyChanged("Name");
}
}
}
спасибо!