设置WPF样式触发器将删除绑定

时间:2015-11-19 07:02:43

标签: c# wpf

我有一个WPF DataGridCheckBoxColumn,它绑定到一个实现INotifyPropertyChanged的对象,如下所示:

DataGridCheckBoxColumn Binding="{Binding Path=IsSelected}" CellStyle="{StaticResource MyDataGridCheckBoxCellStyle}"/>

以下是相关对象:

public class ListItem : INotifyPropertyChanged
{
    public int ID { get; set; }
    private bool isSelected = false;
    public bool IsSelected { get { return isSelected; } set { isSelected = value; OnChanged("IsSelected"); } }

    public event PropertyChangedEventHandler PropertyChanged;
    private void OnChanged(string prop)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(prop));
    }
}

一切都按预期工作,除了为了将Checkbox设置为Checked,我需要双击,以便先选择列,然后设置复选框值。

所以,我决定实现一个Style触发器,如下所示:

<Style x:Key="MyDataGridCheckBoxCellStyle" TargetType="DataGridCell">
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True" >
            <Setter Property="IsEditing" Value="True" />
        </Trigger>
    </Style.Triggers>
</Style>

现在我可以单击以检查复选框,但我的绑定不再起作用。知道这里发生了什么吗?为什么设置样式触发器会删除绑定?

1 个答案:

答案 0 :(得分:1)

更改样式可能会导致默认模板出现问题。您很可能需要复制整个样式+模板,然后根据您的需要进行修改。不过,你可以尝试这个http://wpf.codeplex.com/wikipage?title=Single-Click%20Editing