swallow checkbox events if the item isn't loaded yet.
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/wpf/org/eclipse/swt/widgets/Table.java b/bundles/org.eclipse.swt/Eclipse SWT/wpf/org/eclipse/swt/widgets/Table.java
index 395fb9c..a8d1db6 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/wpf/org/eclipse/swt/widgets/Table.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/wpf/org/eclipse/swt/widgets/Table.java
@@ -1282,6 +1282,8 @@
 	int source = OS.RoutedEventArgs_Source (e);
 	TableItem item = (TableItem) display.getWidget (source);
 	OS.GCHandle_Free (source);
+	// ignore events that result from the initial binding
+	if (!OS.FrameworkElement_IsLoaded (item.handle)) return;
 	if (item.grayed) {
 		int checkbox = item.findPart (0, CHECKBOX_PART_NAME);
 		if (checkbox != 0) {
@@ -1302,6 +1304,8 @@
 	int source = OS.RoutedEventArgs_Source (e);
 	TableItem item = (TableItem) display.getWidget (source);
 	OS.GCHandle_Free (source);
+	// ignore events that result from the initial binding
+	if (!OS.FrameworkElement_IsLoaded (item.handle)) return;
 	if (!item.grayed) {
 		int checkbox = item.findPart (0, CHECKBOX_PART_NAME);
 		if (checkbox != 0) {
@@ -1372,6 +1376,8 @@
 	int source = OS.RoutedEventArgs_Source (e);
 	TableItem item = (TableItem) display.getWidget (source);
 	OS.GCHandle_Free (source);
+	// ignore events that result from the initial binding
+	if (!OS.FrameworkElement_IsLoaded (item.handle)) return;
 	item.checked = false;
 	item.updateCheckState (false);
 	Event event = new Event ();
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/wpf/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/wpf/org/eclipse/swt/widgets/Tree.java
index 3efe85e..f8c7019 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/wpf/org/eclipse/swt/widgets/Tree.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/wpf/org/eclipse/swt/widgets/Tree.java
@@ -1176,6 +1176,8 @@
 	int source = OS.RoutedEventArgs_Source (e);
 	TreeItem item = (TreeItem) display.getWidget (source);
 	OS.GCHandle_Free (source);
+	// ignore events that result from the initial binding
+	if (!OS.FrameworkElement_IsLoaded (item.handle)) return;
 	if (item.grayed) {
 		int checkbox = item.findPart (0, CHECKBOX_PART_NAME);
 		if (checkbox != 0) {
@@ -1218,6 +1220,8 @@
 	int source = OS.RoutedEventArgs_Source (e);
 	TreeItem item = (TreeItem) display.getWidget (source);
 	OS.GCHandle_Free (source);
+	// ignore events that result from the initial binding
+	if (!OS.FrameworkElement_IsLoaded (item.handle)) return;
 	if (!item.grayed) {
 		int checkbox = item.findPart (0, CHECKBOX_PART_NAME);
 		if (checkbox != 0) {
@@ -1284,6 +1288,8 @@
 	int source = OS.RoutedEventArgs_Source (e);
 	TreeItem item = (TreeItem) display.getWidget (source);
 	OS.GCHandle_Free (source);
+	// ignore events that result from the initial binding
+	if (!OS.FrameworkElement_IsLoaded (item.handle)) return;
 	item.checked = false;
 	item.updateCheckState (false);
 	Event event = new Event ();