2014-04-04 53 views
1

我剛剛製作了一個帶有longlistseletor的簡單應用程序,其中包含一個項目和一個按鈕以刪除此項目。我認爲沒有錯,但每次我從這個列表中刪除4或5個項目,應用程序總是關閉。是否因爲內存不足?從長列表選擇器中刪除項目時,應用程序關閉

順便說一句,我的英語不好,對不起:P

XAML代碼:

<phone:LongListSelector ItemsSource="{Binding ItemsIdea}"> 
    <!-- item quick idea template--> 
    <phone:LongListSelector.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <Grid HorizontalAlignment="Stretch" Margin="0,20,0,0"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="10"/> 
         <ColumnDefinition Width="*"/> 
         <ColumnDefinition Width="Auto"/> 
        </Grid.ColumnDefinitions> 
        <Rectangle Grid.Column="0" Fill="{StaticResource PhoneAccentBrush}"/> 
        <StackPanel Grid.Column="1"> 
         <TextBlock Text="{Binding IdeaContent}" TextWrapping="Wrap" Style="{StaticResource PhoneTextLargeStyle}"/> 
        </StackPanel> 
        <Button Grid.Column="2" Click="btDeleteIdea_Click" BorderThickness="0.0" VerticalAlignment="Top"> 
         <Image Source="/Assets/Icons/cancel_small.png"/>             
        </Button> 
       </Grid> 
      </StackPanel> 
     </DataTemplate> 
    </phone:LongListSelector.ItemTemplate> 
</phone:LongListSelector> 

和C#代碼:

private void btDeleteIdea_Click(object sender, RoutedEventArgs e) { 
    var button = (sender as Button).DataContext as IdeaViewModel; 
    if (button != null) 
     App.ViewModel.DeleteIdea(button); 
} 
+0

我認爲您的應用正在發生異常您正在刪除項目...您應該調試您的代碼以瞭解異常。 –

+0

我認爲您的「DeleteIdea」方法存在問題。調試DeleteIdea方法。 – Jaihind

回答

0

的問題可能與一些小錯誤連接LongListSelector(我不知道它們是否仍然存在於當前版本和您使用的版本中)。

Here you can find類似的問題,解決的辦法是擴展你的LLS類。我前一段時間也有類似的問題,這有助於:

public class LongListSelectorExtension : LongListSelector 
{ 
    protected override System.Windows.Size MeasureOverride(System.Windows.Size availableSize) 
    { 
     try { return base.MeasureOverride(availableSize); } 
     catch (ArgumentException) { return this.DesiredSize; } 
    } 
} 

您還可以look here哪裏是LLS代碼一些改進。

也許這會有所幫助。


要使用你的擴展,你將不得不修改您的XAML:

添加您的項目的命名空間,其中的類是在開始,而其他的xmlns是:

xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" 
xmlns:local="clr-namespace:Example" 

那麼你應該能夠在XAML文件中使用您的班級,而不是普通的LLS:

<local:LongListSelectorExtension .../> 
+0

只需編寫class LongListSelectorExtension,下一步如何使用它? PLZ幫助,我是新編碼:( – user3448806

+0

@ user3448806我編輯了我的答案。並且請不要將答案標記爲解決方案,如果它沒有幫助/解決問題。 – Romasz

+0

好的謝謝,最後它的工作。沒有更多的崩潰^^只剩下1個小bug:我添加了6個項目,如果我刪除了第三個,它不再崩潰,但列表不更新(第4到第6個仍然在那裏的位置,不推高),但同時謝謝 – user3448806

相關問題