- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
任何人都可以启发我以下不起作用的方式
我正在使用 mvvm 模式
执行我的代码后,我仍然能够选中和取消选中 DataGridCheckBoxColumn 中的复选框
属性(我的 ViewModel 的一部分)
public bool noCheckPermission
{
get { return false; } // just as example
}
Xaml(我的 View 没有隐藏代码)
<DataGrid Height="300" AutoGenerateColumns="False" SelectionMode="Single"
ItemsSource="{Binding Itemlist, UpdateSourceTrigger=PropertyChanged}">
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridCheckBoxColumn}">
<Style.Triggers>
<DataTrigger Binding="{Binding noCheckPermission}" Value="False">
<Setter Property="IsReadOnly" Value="True"/>
</DataTrigger>
<DataTrigger Binding="{Binding noCheckPermission}" Value="True">
<Setter Property="IsReadOnly" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridCheckBoxColumn Width="60"
Header="Freigabe" Binding="{Binding FreigegebenL}" CanUserReorder="False">
</DataGridCheckBoxColumn>
</DataGrid.Columns>
</DataGrid>
编辑:在做了 blindmeis 和 Will 的建议之后。我得到这个作为我当前的 XAML
<DataGrid Height="300" Margin="12" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False"
CanUserResizeColumns="False" CanUserResizeRows="False" CanUserReorderColumns="False"
x:Name="grd" ItemsSource="{Binding Itemlist, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding selectedItem, UpdateSourceTrigger=PropertyChanged}" SelectionMode="Single" SelectionChanged="DataGrid_SelectionChanged" TabIndex="2">
<DataGrid.Columns>
<DataGridCheckBoxColumn Width="60" IsReadOnly="{Binding DataContext, Path=noCheckPermission, ElementName=grd}" Binding="{Binding FreigegebenL}"
Header="Freigabe" CanUserReorder="False">
</DataGridCheckBoxColumn>
</DataGrid.Columns>
</DataGrid>
这是我的输出窗口中的错误:System.Windows.Data 错误:2:找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement。绑定(bind)表达式:Path=noCheckPermission;数据项=空;目标元素是“DataGridCheckBoxColumn”(HashCode=35155182);目标属性是“IsReadOnly”(类型“ bool 值”)
最佳答案
首先
我注意到我的属性在错误的 VM 中(它在我的行的子 VM 中)解决这个问题并没有解决我的问题
终于
看完this article我能够解决它
public class BindingProxy : Freezable
{
#region Overrides of Freezable
protected override Freezable CreateInstanceCore()
{
return new BindingProxy();
}
#endregion
public object Data
{
get { return (object)GetValue(DataProperty); }
set { SetValue(DataProperty, value); }
}
// Using a DependencyProperty as the backing store for Data. This enables animation, styling, binding, etc...
public static readonly DependencyProperty DataProperty =
DependencyProperty.Register("Data", typeof(object), typeof(BindingProxy), new UIPropertyMetadata(null));
}
资源
<DataGrid.Resources>
<local:BindingProxy x:Key="proxy" Data="{Binding}" />
</DataGrid.Resources>
列
<DataGridCheckBoxColumn Width="60" Header="Freigabe" CanUserReorder="False"
IsReadOnly="{Binding Data.noCheckPermission, Source={StaticResource proxy}}"
Binding="{Binding FreigegebenL}"/>
关于wpf - 如何通过触发器更改 IsReadOnly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16083037/
我正在创建一个实现 IList 的专用代理类并包装内部 List实例。 List本身实现 IList ,它声明了一个成员 bool IsReadOnly,但是当我尝试从我自己的类访问该成员时,我不能,
任何人都可以启发我以下不起作用的方式 我正在使用 mvvm 模式 执行我的代码后,我仍然能够选中和取消选中 DataGridCheckBoxColumn 中的复选框 属性(我的 ViewModel 的
如果我创建到 IsReadOnly 的绑定(bind)DataGridTextColumn 的属性(property),它没有实现。如果我通过标记设置它,它可以工作。 IsReferenceI
我在 .NET 中有一个具有 2 个新属性的用户控件 Prop1: Boolean Prop2: String 当用户将 Prop1 设置为 false 时,我想在属性网格中使 Prop2 READO
在 Silverlight 4 中,DataGridTextColumn 的 IsReadOnly 属性似乎没有依赖属性。因此我无法将它绑定(bind)到 View 模型上的属性。 似乎唯一的选择是使
我目前有一个在 DataGrid 中使用的自定义 CheckBox 样式。但是,当我在 DataGridCheckBoxColumn 中指定 IsReadOnly="true"属性时,这不再起作用(我
我想根据集合中的值为每一行启用/禁用我的数据网格中的复选框列。我有一个名为 AccountComponents 的 ObservableCollection,它是一个名为 AccountCompone
谁能帮我解决以下问题。 ############################### # retrieve Rule Definitions ############################
在 .Net 框架中,List实现 ICollection界面。但是,在 Visual Studio 中查看 List 类时,我看不到 IsReadOnly属性,据说在 ICollection界面。
使用为 IsReadOnly() 方法返回值的 PropertyDescriptor 和与 ReadOnlyAttribute 关联的有什么区别>? 最佳答案 主要区别在于,如果您提供自己的 Prop
备注 IList.IsReadOnly说明如下: A collection that is read-only does not allow the addition, removal, or mod
类型化数组同时实现 System.Collections.IList和 System.Collections.Generic.ICollection接口(interface),它们都有自己的IsRea
我正在编写一个实现 IList 的数组包装类。 .我不确定返回什么 IList.IsReadOnly (继承自 ICollection )。 我的类(class)不允许插入和删除。它确实允许通过 th
这两种检查文件是否只读的方式有区别吗? Dim fi As New FileInfo("myfile.txt") ' getting it from FileInfo Dim ro As Boolea
这个 var h = new HashSet(); var r = h.IsReadOnly; 不编译。我必须做的 var r = ((ICollection)h).IsReadOnly; 为什么Is
我正在尝试使用 Windows 8.1 应用程序中的绑定(bind)将文本框设置为只读。我已经尝试了一些来自互联网的代码,但它们不起作用。你能建议任何最简单的方法吗,我对绑定(bind)这个概念还很陌
本文整理了Java中com.datasift.dropwizard.zookeeper.ZooKeeperFactory.isReadOnly()方法的一些代码示例,展示了ZooKeeperFacto
我有这个文本框。此文本框位于 数据模板 : ... 我想允许用户选择其中的整个文本(可选地通过单击文本框)。而且我不想使用任何 后面的代码。 怎么做?提前致谢。 最佳答案 我
Java JDBC Connection 类允许设置一个名为 readOnly 的参数,但它有什么用呢? 根据 JDBC documentation : readOnly is used to put
isLeaf 和 isReadOnly 有什么区别? 根据https://stackoverflow.com/a/16253663/2656889和https://stackoverflow.com/
我是一名优秀的程序员,十分优秀!