Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用mvvm在wpf中的datagrid单元格中进行只读更改_C#_Wpf_Xaml_Mvvm_Datagrid - Fatal编程技术网

C# 如何使用mvvm在wpf中的datagrid单元格中进行只读更改

C# 如何使用mvvm在wpf中的datagrid单元格中进行只读更改,c#,wpf,xaml,mvvm,datagrid,C#,Wpf,Xaml,Mvvm,Datagrid,我的网格如下 我想要的是当点击datagrid中的复选框时,如果选中了True Holoday名称,则应该启用,否则它应该是可编辑的 将属性绑定到列的IsReadOnly属性。处理checkbox checked事件并更新您绑定到viewModel cellEditEnding事件中的列的属性,并在内部检查checkbox列的状态。如果选中,则查找列并设置为true;比如: public void CellEditEndingEvent(object Sender, DataGridCel

我的网格如下

我想要的是当点击datagrid中的复选框时,如果选中了True Holoday名称,则应该启用,否则它应该是可编辑的




将属性绑定到列的IsReadOnly属性。处理checkbox checked事件并更新您绑定到viewModel cellEditEnding事件中的列的属性,并在内部检查checkbox列的状态。如果选中,则查找列并设置为true;比如:

public void CellEditEndingEvent(object Sender, DataGridCellEditEndingEventArgs e)
{  
    if(String.Equals(e.Column.Header.ToString(), "YourCheckBoxFieldName")
    {
        var x = e.Row.Item as YourType;
        if(null != x)
        {
            e.EditingElement.IsEnabled = x.IsHolidayYN;
        }
    }            
}
要在viewModel中获取此方法,请使用交互性和交互库。我没有测试代码

public void CellEditEndingEvent(object Sender, DataGridCellEditEndingEventArgs e)
{  
    if(String.Equals(e.Column.Header.ToString(), "YourCheckBoxFieldName")
    {
        var x = e.Row.Item as YourType;
        if(null != x)
        {
            e.EditingElement.IsEnabled = x.IsHolidayYN;
        }
    }            
}