Search Results

Search found 1 results on 1 pages for 'rouwlee'.

Page 1/1 | 1 

  • wpf 4.0 datagrid template column two-way binding problem

    - by rouwlee
    Hello all! I'm using the datagrid from wpf 4.0. This has a TemplateColumn containing a checkbox. The IsChecked property of the checkbox is set via binding. The problem is that even if I specify the binding mode explicitly to be TwoWay, it works only in one direction. I have to mention that the same code works perfectly in .net 3.5 with the datagrid from the wpf toolkit. Please take a look at the .xaml and .cs contents. Thanks in advance, Roland <Window.Resources> <DataTemplate x:Key="IsSelectedColumnTemplate"> <CheckBox IsChecked="{Binding Path=IsSelected, Mode=TwoWay}" /> </DataTemplate> </Window.Resources> <Grid> <DataGrid x:Name="dataGrid" AutoGenerateColumns="false" CanUserAddRows="False" CanUserDeleteRows="False" HeadersVisibility="Column" ItemsSource="{Binding}" > <DataGrid.Columns> <DataGridTemplateColumn Header="Preselected" x:Name="myIsSelectedColumn" CellTemplate="{StaticResource IsSelectedColumnTemplate}" CanUserSort="True" SortMemberPath="Orientation" Width="Auto" /> </DataGrid.Columns> </DataGrid> </Grid> and the related .cs content: public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); ObservableCollection<DataObject> DataSource = new ObservableCollection<DataObject>(); DataSource.Add(new DataObject()); dataGrid.ItemsSource = DataSource; } } public class DataObject : DependencyObject { public bool IsSelected { get { return (bool)GetValue(IsSelectedProperty); } set { SetValue(IsSelectedProperty, value); } } // Using a DependencyProperty as the backing store for IsSelected. This enables animation, styling, binding, etc... public static readonly DependencyProperty IsSelectedProperty = DependencyProperty.Register("IsSelected", typeof(bool), typeof(DataObject), new UIPropertyMetadata(false, OnIsSelectedChanged)); private static void OnIsSelectedChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e) { // this part is not reached } }

    Read the article

1