DataGridCheckBoxColumn立即点击NotifyPropertyChanged

时间:2012-01-06 10:57:56

标签: wpf xaml

您好我有一个DataGridCheckBoxColumn,一旦用户检查或取消选中DataGridCheckBoxColumn,我希望它对底层绑定对象进行notifypropertychanged。

目前,当用户在选中或取消选中DataGridCheckBoxColumn后点击其他行时,似乎只会执行此操作。

XAML:

<DataGridCheckBoxColumn x:Name="isVisibleColumn" Binding="{Binding Path=isVisible}" Header="is Visible"   Width="SizeToHeader" />

代码背后:

public bool isVisible
{
        get
        {
            if (this.Visibility1 == Visibility.Visible)
            {
                return true;
            }
            else
            {
                return false; 
            }
        }
        set
        {
            if (value == true)
            {
                this.Visibility1 = Visibility.Visible;
            }
            else
            {
                this.Visibility1 = Visibility.Collapsed; 
            }
            this.NotifyPropertyChanged("isVisible"); 


        }
 }

1 个答案:

答案 0 :(得分:3)

将绑定的UpdateSourceTrigger更改为propertychanged,而不是保留默认值lostfocus

您必须使用列模板而不是复选框列

来指定此项
<dg:DataGridTemplateColumn>
  <dg:DataGridTemplateColumn.CellTemplate>
    <DataTemplate> 
      <CheckBox IsChecked="{Binding Path=isVisible,UpdateSourceTrigger=PropertyChanged}" />
    </DataTemplate>
  </dg:DataGridTemplateColumn.CellTemplate>
</dg:DataGridTemplateColumn>