the problem is that the items in the checked list box are displayed twice.after adding in one window.. i am posing my code here.plz help me..
thanks in advanced
My table is demo with field single field sub in Microsoft access and database is DLL..
Window1.xaml
<pre lang="xml"><Window x:Class="WpfApplication11.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
<Grid>
<Button Content="add lesson" Height="23" HorizontalAlignment="Left" Margin="66,77,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="52,36,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" />
</Grid>
</Window
>
Window1.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data.OleDb;
using System.Data;
namespace WpfApplication11
{
public partial class Window1 : Window
{
public OleDbConnection conn;
public OleDbDataAdapter da;
public DataSet ds;
public DataSet ds1 = new DataSet();
public DataTable dt;
public OleDbCommand cmd;
public OleDbDataReader dr;
public string LessonForAdding { get; set; }
public TripInfo tripInfo;
MainWindow objmain = new MainWindow();
List<TripInfo> tripList = new List<TripInfo>();
public Window1()
{
InitializeComponent();
objmain.listLesson.ItemsSource = tripList;
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
LessonForAdding = textBox1.Text;
conn.Open();
String sql = "INSERT INTO demo (sub) VALUES('" + LessonForAdding + "')";
cmd = new OleDbCommand(sql, conn);
cmd.ExecuteNonQuery();
conn.Close();
this.Close();
}
public class TripInfo
{
public TripInfo(bool isVisited, string cityName)
{
IsVisited = isVisited;
LessonName = cityName;
}
public Boolean IsVisited
{ get; set; }
public String LessonName
{ get; set; }
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Software Development\vishal_wpf\dem\WpfApplication11\WpfApplication11\DLL.mdb";
}
}
}
MainWindow.xaml
<pre lang="xml"><Window x:Class="WpfApplication11.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="536" Width="853" Loaded="Window_Loaded">
<Grid>
<TabControl Height="260" HorizontalAlignment="Left" Margin="41,57,0,0" Name="tabControl1" VerticalAlignment="Top" Width="731">
<TabItem Header="old" Name="tabItem1">
<Grid></Grid>
</TabItem>
<TabItem Header="new">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition>
</ColumnDefinition>
<ColumnDefinition>
</ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid Height="180" Margin="10,10,24,37" Width="327">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10*" />
<ColumnDefinition Width="317*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="84*" />
<RowDefinition Height="81*" />
</Grid.RowDefinitions>
<TextBox Grid.ColumnSpan="2" Grid.Row="1" Height="23" HorizontalAlignment="Left" Margin="8,60,0,0" Name="textBox3" VerticalAlignment="Top" Width="209" />
<Button Click="btn_AssgnLesson_Click" Content="add prev" Grid.Column="1" Height="28" HorizontalAlignment="Left" Margin="215,6,0,0" Name="button1" VerticalAlignment="Top" Width="96" />
<Button Click="btn_ChgLesson_Click" Content="add here" Grid.Column="1" Grid.Row="1" Height="28" HorizontalAlignment="Left" Margin="215,57,0,0" Name="button2" VerticalAlignment="Top" Width="96" />
<ListBox Grid.Column="1" Grid.RowSpan="2" Height="128" HorizontalAlignment="Left" ItemsSource="{Binding Path=tripList}" Margin="13,6,0,0" Name="listLesson" Selector.IsSelected="{Binding IsChecked, ElementName=checkBox, Mode=TwoWay}" VerticalAlignment="Top" Width="194">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsVisited}" Margin="2" VerticalAlignment="Center" />
<TextBlock FontSize="14" Foreground="Black" Margin="2" Text="{Binding LessonName}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Grid>
<!--
<GroupBox Header="groupBox1" Height="148" Name="groupBox1" Width="277">
<ListBox Height="74" Name="listLesson" Width="241" DataContext="{Binding}" IsSelected="{Binding IsChecked, ElementName=checkBox, Mode=TwoWay}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox Margin="2" VerticalAlignment="Center" IsChecked="{Binding IsVisited}" />
<TextBlock Margin="2" Foreground="Black" FontSize="14" Text="{Binding LessonName}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</GroupBox>
-->
</TabItem>
</TabControl>
</Grid>
</Window
>
MainWindow.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.OleDb;
using System.Data;
namespace WpfApplication11
{
public partial class MainWindow : Window
{
public OleDbConnection conn;
public OleDbDataAdapter da;
public DataSet ds;
public DataSet ds1 = new DataSet();
public DataTable dt;
public OleDbCommand cmd;
public OleDbDataReader dr;
List<TripInfo> tripList = new List<TripInfo>();
public MainWindow()
{
InitializeComponent();
listLesson.ItemsSource = tripList;
DataContext = this;
conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Software Development\vishal_wpf\dem\WpfApplication11\WpfApplication11\DLL.mdb";
}
private void button1_Click(object sender, RoutedEventArgs e)
{
tripList.Add(new TripInfo(false, textBox3.Text));
listLesson.Items.Refresh();
}
public class TripInfo
{
public TripInfo(bool isVisited, string cityName)
{
IsVisited = isVisited;
LessonName = cityName;
}
public Boolean IsVisited
{ get; set; }
public String LessonName
{ get; set; }
}
private void btn_AssgnLesson_Click(object sender, RoutedEventArgs e)
{
Window1 wd1 = new Window1();
wd1.ShowDialog();
conn.Open();
try
{
da = new OleDbDataAdapter("SELECT distinct sub FROM demo", conn);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
ds = new DataSet();
da.Fill(ds);
dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
{
tripList.Add(new TripInfo(false, dt.Rows[i].ItemArray[0].ToString()));
listLesson.Items.Refresh();
}
conn.Close();
}
private void btn_ChgLesson_Click(object sender, RoutedEventArgs e)
{
tripList.Add(new TripInfo(false, textBox3.Text));
listLesson.Items.Refresh();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
}
}
}