Kullanıcının bir Transaction nesnesini düzenleyebileceği veya silebileceği Windows Phone 7 uygulamasında bir sayfam var. Transaction nesnesi, hesap sınıfı ve kategori sınıfı ile ilişkisi olan bir Linq-to-Sql sınıfıdır. sayfasında, böyle, kullanıcı verilen işlem için hesap ve kategori seçin bildirmek için bir ListPicker kullanın:Liste ayırıcı hatası SelectedItem her zaman geçerli bir değere ayarlanmalıdır
<toolkit:ListPicker Grid.Row="1" FullModeHeader="Choose the Account" FullModeItemTemplate="{StaticResource FullModeItemTemplate}" ExpansionMode="FullScreenOnly" Background="#26000000" Margin="10,0,10,0" Name="Account" SelectedItem="{Binding Account, Mode=TwoWay}" Tap="ListPicker_Tap" />
<toolkit:ListPicker Grid.Row="7" FullModeHeader="Choose the Category" FullModeItemTemplate="{StaticResource FullModeItemTemplate}" ExpansionMode="FullScreenOnly" Background="#26000000" Margin="10,0,10,0" Name="Category" SelectedItem="{Binding Category, Mode=TwoWay}" Tap="ListPicker_Tap" />
ListPicker_Tap olay WPF Ağustos/2011 sürümünde bir hata için bir düzeltmedir Windows Phone için ve Toolkit basitçe şudur:
private void ListPicker_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
ListPicker lp = (ListPicker)sender;
lp.Open();
}
Eğer kullanıcı düzenlemesi işlem, her şey iyi, ama kullanıcı bunu silmeye çalışırsanız, ben SelectedItem hep ayarlanması gerekir" belirten bir hata olsun geçerli değer". İşte
kod ise TransactionPage.xaml.cs içinde AppBar içinde silme düğmesi kullanıcı tıklama:private void appBarDelete_Click(object sender, EventArgs e)
{
MessageBoxResult result = MessageBox.Show("Are you sure?\n", "Confirm", MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK)
{
App.ViewModel.DeleteTransaction(transaction);
}
NavigationService.GoBack();
}
Benim ViewModel.DeleteTransaction yöntemi:
public void DeleteTransaction(Transaction transaction)
{
AllTransactions.Remove(transaction);
transactionRepository.Delete(transaction);
}
My transactionRepository.Delete yöntemi:
public void Delete(Transaction transaction)
{
Context.Transactions.DeleteOnSubmit(transaction);
Context.SubmitChanges();
}
Bu hataya Context.SubmitChanges dosyasında ulaşıyorum() Yürütme, İşlem sınıf içinde NotifyPropertyChanged, ben hata alıyorum hattına ayıklama noktaları şudur: ÖzellikAdı yılında
protected virtual void SendPropertyChanged(String propertyName)
{
if ((this.PropertyChanged != null))
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
değer "Kategori" dir bağlıyoruz. Nesne silinirken, kategori ve hesapların propertychanged olayını göndermek gibi görünüyor ve listpicker TwoWay modunda olduğundan, onunla uğraşırken bazı sorunları var. Bunu nasıl düzeltebilirim? Biraz yardıma ihtiyacım var.
tam XAML takmak Can yardımcı Umut? Ya da çok uzunsa, kısmi XAML, 'Binding Account, Mode = TwoWay}' ve '{Binding Category, Mode = TwoWay}' ın ne olduğunu görebildiğimiz sürece iyi olur. – Amry