0
Answer

Windows Phone 8 ListBox With CheckBox

Jobs Navid

Jobs Navid

10y
1.4k
1
I have a listbox:
<ListBox Grid.Row="0" ItemsSource="{Binding ShoppingItems,Mode=TwoWay}" SelectedItem="{Binding SelectedItem,Mode=TwoWay}" FontSize="42" FontWeight="Light" FontFamily="Segoe WP Light" HorizontalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Visible">


<i:Interaction.Triggers>


<i:EventTrigger EventName="SelectionChanged">


<i:InvokeCommandAction Command="{Binding Tapped}" CommandParameter="{Binding ElementName=List,Path=SelectedItem}"/>


</i:EventTrigger>


</i:Interaction.Triggers>


<ListBox.ItemTemplate>


<DataTemplate>


<Grid>


<Grid.ColumnDefinitions>


<ColumnDefinition Width="Auto"/>


<ColumnDefinition Width="*"/>


</Grid.ColumnDefinitions>


<Grid Grid.Column="0" Margin="0,-19,0,22">


<CheckBox Grid.Column="0" IsChecked="{Binding Path=IsChecked,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}" />


</Grid>


<Grid x:Name="MyGrid" Margin="0,-19,0,22" Grid.Column="1">


<Grid.ColumnDefinitions>


<ColumnDefinition Width="Auto"/>


<ColumnDefinition Width="Auto"/>


<ColumnDefinition Width="Auto"/>


</Grid.ColumnDefinitions>


<Grid.RowDefinitions>


<RowDefinition Height="Auto"/>


<RowDefinition Height="Auto"/>


<RowDefinition Height="Auto"/>


</Grid.RowDefinitions>


<TextBlock Text="{Binding DisplayingItem,Mode=TwoWay}" FontSize="46" Grid.Column="0" Grid.Row="0" TextWrapping="Wrap" />


<TextBlock Text="quantity" FontSize="32" Grid.Row="1" Margin="6,0,0,0" Grid.Column="0" TextWrapping="Wrap"/>


<TextBlock Text="{Binding DisplayingQuantity,Mode=TwoWay}" FontSize="32" Grid.Column="1" Grid.Row="1" Margin="32,0,12,12" TextWrapping="Wrap"/>


<TextBlock Grid.Column="2" Grid.Row="1" FontSize="32" Margin="32,0,12,12" Text="{Binding DisplayingPackaging,Mode=TwoWay}" TextWrapping="Wrap"/>


<TextBlock Text="price" Margin="6,0,0,0" FontSize="32" Grid.Row="2" Grid.Column="0" TextWrapping="Wrap"/>


<TextBlock Text="$" FontSize="32" Grid.Row="2" Grid.Column="1" Margin="32,0,12,12" TextWrapping="Wrap"/>


<TextBlock Grid.Column="3" FontSize="32" Grid.Row="2" Margin="32,0,12,12" Text="{Binding DisplayingPrice,Mode=TwoWay}" TextWrapping="Wrap"/>


</Grid>


</Grid>


</DataTemplate>


</ListBox.ItemTemplate>


</ListBox>
and it has a check box inside it, the property bound to my listbox is in my ViewModel,
but when I check an item so that I can delete it here is the deleting Code:
private void Delete(object p)
{
using(var db = new SQLite.SQLiteConnection(App.DB_Path))
{
try
{
if (IsChecked == true)
{
var exists = db.Query<ShoppingModel>("SELECT * FROM ShoppingModel").FirstOrDefault();
if (exists != null)
{
db.RunInTransaction(() =>
{
db.Delete(exists);
MessageBox.Show("Deleted!");
});
}
}
else if (IsChecked != true)
{
MessageBox.Show("No items are checked");
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
}
The message is that no item has been checked so where is my problem.
here is my Checkbox property:
private bool isChecked;
public bool IsChecked
{
get
{
return isChecked;
}
set
{
if (isChecked != value)
{
isChecked = value;
RaisePropertyChanged("IsChecked");
}
}
}
help me.