Treeview Bind datatable to Checkbox - How to

I have a datatable that looks like   NAME,  ISseelcted
I need to create a TREEView with a CHECKBOX and bind it to the datatable...
thanks
LVL 1
JElsterAsked:
Who is Participating?
 
Gautham JanardhanConnect With a Mentor Commented:
with check box
<Window x:Class="TestTableBinding.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">
    <Grid>
        <TreeView ItemsSource="{Binding Table.DefaultView}">
            <TreeView.ItemTemplate>
                <DataTemplate>
                    <StackPanel >
                        <TextBlock Text="{Binding Row[0]}"/>
                        <CheckBox IsChecked="{Binding Row[1]}"/>
                    </StackPanel>
                </DataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>
    </Grid>
</Window>


public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            this.DataContext = this;
            DataRowView view;
            
        }

        public DataTable Table { get; set; }

        protected override void OnInitialized(EventArgs e)
        {
            base.OnInitialized(e);

            Table = new DataTable();
            
            DataColumn cl = new DataColumn("Col1", typeof(string));
            cl.MaxLength = 100;
            Table.Columns.Add(cl);

            cl = new DataColumn("Col2", typeof(string));
            cl.MaxLength = 100;
            Table.Columns.Add(cl);

            DataRow rw = Table.NewRow();
            Table.Rows.Add(rw);
            rw["Col1"] = "true value";
            rw["Col2"] = true;

            rw = Table.NewRow();
            Table.Rows.Add(rw);
            rw["Col1"] = "false value";
            rw["Col2"] = false;
        }
    }

Open in new window

0
 
Gautham JanardhanCommented:
sample below
XAML

<TreeView ItemsSource="{Binding Table.DefaultView}">
            <TreeView.ItemTemplate>
                <DataTemplate>
                    <StackPanel >
                        <TextBlock Text="{Binding Row[0]}"/>
                        <TextBlock Text="{Binding Row[1]}"/>
                    </StackPanel>
                </DataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>


code behind

public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            this.DataContext = this;
            DataRowView view;
            
        }

        public DataTable Table { get; set; }

        protected override void OnInitialized(EventArgs e)
        {
            base.OnInitialized(e);

            Table = new DataTable();
            
            DataColumn cl = new DataColumn("Col1", typeof(string));
            cl.MaxLength = 100;
            Table.Columns.Add(cl);

            cl = new DataColumn("Col2", typeof(string));
            cl.MaxLength = 100;
            Table.Columns.Add(cl);

            DataRow rw = Table.NewRow();
            Table.Rows.Add(rw);
            rw["Col1"] = "Value1";
            rw["Col2"] = "Value2";
        }
    }

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.