Powered by MSDN

US - English
NEW! Silverlight 5 is available Learn More

  • goillini20

    goillini20

    Member

    3 Points

    22 Posts

    Simple datagrid w/ checkboxes

    Jun 03, 2009 03:07 AM | LINK

    I'm creating a datagrid with templates that hold checkboxes so I can fire events from it. When I click the checkbox and scroll down, select another row in the grid, and scroll back up, the check in the checkbox I clicked disappears. Does anyone know why? XAML:
        <Grid x:Name="LayoutRoot" Background="White">
            <data:DataGrid Name="myDataGrid" AutoGenerateColumns="False">
                <data:DataGrid.Columns>
                    <data:DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" IsReadOnly="True"/>
                    
                    <data:DataGridTemplateColumn Header="Check">
                        <data:DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <CheckBox Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"/>
                            </DataTemplate>
                        </data:DataGridTemplateColumn.CellTemplate>
                    </data:DataGridTemplateColumn>
                    
                </data:DataGrid.Columns>
            </data:DataGrid>

    Code behind:
    public partial class Page : UserControl
        {
            public Page()
            {
                InitializeComponent();

                List<Person> people = new List<Person>();

                for (int i = 0; i < 100; i++)
                    people.Add(new Person("test", false));

                myDataGrid.ItemsSource = people;

            }

            private void CheckBox_Checked(object sender, RoutedEventArgs e)
            {
                MessageBox.Show("clicked");

            }

            private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
            {
                MessageBox.Show("unclicked");

            }
        }
    Person class:
    public class Person
        {
            public string Name
            {
                get;
                set;
            }
            public bool IsChecked
            {
                get;
                set;
            }

            public Person()
            {
                Name = "";
                IsChecked = false;
            }

            public Person(string name, bool ischecked)
            {
                Name = name;
                IsChecked = ischecked;
            }
        }
    Thanks for your help!

    c# XAML Silverlight 2.0 databinding datagrid Data binding C# datagrid C#. Data Template Data Template problem