1. 以下是绑定方式,但是IsReadOnly不起作用

<DataGrid x:Name="dgTest" ItemsSource="{Binding}" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTextColumn Header="Name" IsReadOnly="{Binding Path=Pass}" Binding="{Binding Path= Name}"/>
</DataGrid.Columns>
<DataGrid>

2. IsReadOnly不是针对某个cell的约定,而是对整列起作用,所以这样的绑定有问题。

3. 可以替换成以下代码:

DataGridTextColumn 换为 DataGridTemplateColumn 
<DataGridTemplateColumn Header="Name">
          <DataGridTemplateColumn.CellTemplate>
                   <DataTemplate>
                            <TextBlock Text="{Binding Path=Name,Mode=OneWay}" />
                   </DataTemplate>
           </DataGridTemplateColumn.CellTemplate>
           <DataGridTemplateColumn.CellEditingTemplate>
                   <DataTemplate>
                            <TextBox Text="{Binding Path=Name,Mode=TwoWay}" IsReadOnly="{Binding Path=Pass}"/>
                  </DataTemplate>
            </DataGridTemplateColumn.CellEditingTemplate>
 </DataGridTemplateColumn>

4. 双击进入编辑界面的时候TextBox没有默认聚焦鼠标光标。修改如下:

FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}"
      <DataTemplate x:Key="cellEditingTemplate">
<local:MultiLineTextBox x:Name="multiLineTxt" Text="{Binding Description}"/>
<DataTemplate.Triggers>
<Trigger SourceName="multiLineTxt" Property="IsVisible" Value="True">
<Setter TargetName="multiLineTxt" Property="FocusManager.FocusedElement" Value="{Binding ElementName=multiLineTxt}"/>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>

OR

<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<StackPanel>
<TextBox x:Name="editCommentTextBox" Text="{Binding Comment, Mode=TwoWay}"
FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}">
</TextBox>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>

5.cell添加背景颜色CellStyle="{StaticResource  dgCellStyle}"

       <Style x:Key="dgCellStyle"  TargetType="DataGridCell">
<Setter Property="Background" Value="#DDFFDE"/>
</Style>

6. 根据是否只读决定单元格的北京颜色

            <DataGridTemplateColumn.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsReadOnly}" Value="False">
<Setter Property="Background" Value="#DDFFDE"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTemplateColumn.CellStyle>

参考:

http://www.cnblogs.com/fwbnet/archive/2012/05/08/2490974.html

http://www.cnblogs.com/zhcw/archive/2013/01/12/2857433.html

关于 DataGridTextColumn的IsReadOnly的更多相关文章

  1. WPF DataGrid自定义列DataGridTextColumn.ElementStyle和DataGridTemplateColumn.CellTemplate

    <Window x:Class="DataGridExam.MainWindow"        xmlns="http://schemas.microsoft.c ...

  2. 【转】WPF 给DataGridTextColumn统一加上ToolTip

    源地址:http://dongguojun.iteye.com/blog/1671963 我发现WPF中DataGridTextColumn直接设置它的ToolTipService.Tooltip并不 ...

  3. The tag 'DataGridTextColumn' does not exist in XML namespace ....

    错误 10 The tag 'DataGridTextColumn' does not exist in XML namespace 'http://schemas.microsoft.com/win ...

  4. 由DataGridTextColumn不能获取到父级DataContext引发的思考

    在项目中使用DataGrid需要根据业务动态隐藏某些列,思路都是给DataGrid中列的Visibility属性绑定值来实现(项目使用MVVM),如下 <DataGridTextColumn H ...

  5. 使用NPOI导出Excel引发异常(IsReadOnly = “book.IsReadOnly”引发了类型“System.NotImplementedException”的异常)

    前言: 本人调式npoi导入.导出试用成功后,引入到项目中,导入完美运行,但是导出怎么样都看不到现在的页面,而且浏览器和后台都没有报任务错误,让人好事纳闷,后来去调式,发现在除了一个IsReadOnl ...

  6. C#服务器控件 IsReadOnly 和 Visibility,IsEnable 的区别

    IsReadOnly  适用于“输入.输出”类控件,比如TextBox类, 可以当做文本输入,也可以通过后台代码进行输出. 设置 IsReadOnly(只读) = true 后,该控件只允许输出,不允 ...

  7. 2018-8-10-wpf-绑定-DataGridTextColumn-

    title author date CreateTime categories wpf 绑定 DataGridTextColumn lindexi 2018-08-10 19:16:53 +0800 ...

  8. DataGrid DataGridTextColumn 樣式

    <DataGridTextColumn.ElementStyle> <Style TargetType="TextBlock" > <Setter P ...

  9. WPF DataGrid DataGridTextColumn

    Style设置时,无法绑定到数据,需要这样写 1 <DataGridTextColumn Header="呵呵" Binding="{Binding ID}&quo ...

随机推荐

  1. .NET/ASP.NET MVC Controller 控制器(IController控制器的创建过程)

    阅读目录: 1.开篇介绍 2.ASP.NETMVC IControllerFactory 控制器工厂接口 3.ASP.NETMVC DefaultControllerFactory 默认控制器工厂 4 ...

  2. db2start启动失败

    db2start启动失败 [db2inst1@localhost ~]$ db2start db2start: error while loading shared libraries: libaio ...

  3. Zookeeper(一)从抽屉算法到Quorum (NRW)算法

    一.抽屉算法 抽屉算法,又名鸽巢原理,它是德国数学家狄利克雷首先明确的提出来并用以证明一些数论中的问题,因此,也称为狄利克雷原则.它是组合数学中一个重要的原理. 具体算法讲的是: 第一抽屉算法: 如果 ...

  4. MySQL优化概述

    一. MySQL优化要点 MySQL优化是一门复杂的综合性技术,主要包括: 1 表的设计合理化(符合 3NF,必要时允许数据冗余) 2.1 SQL语句优化(以查询为主) 2.2 适当添加索引(主键索引 ...

  5. logback配置详解4-实例配置

    莫个银行项目中实际引用的logback实例,提供大家参考!!!! [html] view plaincopy <?xml version="1.0" encoding=&qu ...

  6. LLVM 笔记(五)—— LLVM IR

    ilocker:关注 Android 安全(新手) QQ: 2597294287 LLVM 的 IR (Intermediate Representation) 是其设计中的最重要的部分.优化器在进行 ...

  7. spark dataframe unionall

    今天本来想写一个spark dataframe unionall的demo,由于粗心报下面错误: Exception in thread "main" org.apache.spa ...

  8. SpringMVC单元测试之MockMVC,模拟登入用户

    今天介绍一下springMVC的单元测试,可以参考spring官方文档进行 前提准备,springmvc的demo工程,这里就不做叙述了 pom.xml [html] view plain copy ...

  9. BZOJ 1061: [Noi2008]志愿者招募 [单纯形法]【学习笔记】

    1061: [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 3975  Solved: 2421[Submit][Stat ...

  10. CF724D. Dense Subsequence[贪心 字典序!]

    D. Dense Subsequence time limit per test 2 seconds memory limit per test 256 megabytes input standar ...