HCL*_*HCL 25 .net wpf datagrid
如果我创建了对该IsReadOnly属性的绑定DataGridTextColumn,则它不会实现.如果我通过标记设置它,它的工作原理.
<DataGridTextColumn IsReadOnly="{Binding IsReferenceInactive}"/> <!-- NOP -->
<DataGridTextColumn IsReadOnly="True"/> <!-- Works as expected, cell is r/o -->
Run Code Online (Sandbox Code Playgroud)
该IsReferenceInactive属性是一个DP并且工作正常(出于测试目的,我将它绑定到一个复选框,这有效)
这是一个已知的限制吗?
更新
Uups,除了我写的,输出窗口中有一条消息:
<DataGridTextColumn IsReadOnly="{Binding IsReferenceInactive}"/> <!-- NOP -->
<DataGridTextColumn IsReadOnly="True"/> <!-- Works as expected, cell is r/o -->
Run Code Online (Sandbox Code Playgroud)
似乎是这个:
han*_*aad 30
与codekaizen相同但更简单:
<DataGridTextColumn>
<DataGridTextColumn.CellStyle>
<Style>
<Setter Property="UIElement.IsEnabled" Value="{Binding IsEditable}" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
Run Code Online (Sandbox Code Playgroud)
cod*_*zen 16
DataGridColumns不是可视树的一部分,也不参与这样的绑定.我解决它的方法是使用DataGridTemplateColumn.
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=myProperty}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox IsEnabled="{Binding Path=myBool}" Text="{Binding Path=myProperty, Mode=TwoWay}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
还有其他的解决方法,我发现它有点过于hackish,但它们确实有效; 这就是:http://blogs.msdn.com/b/jaimer/archive/2008/11/22/forwarding-the-datagrid-s-datacontext-to-its-columns.aspx
小智 7
我找到了这个解决方案,它允许您在未继承 DataContext 时绑定到数据:http : //www.thomaslevesque.com/2011/03/21/wpf-how-to-bind-to-data-when-the-数据上下文不是继承的/
添加BindingProxyThomas 编写的类并将此资源添加到您的DataGrid:
<DataGrid.Resources>
<local:BindingProxy x:Key="proxy" Data="{Binding}" />
</DataGrid.Resources>
Run Code Online (Sandbox Code Playgroud)
现在您可以按照您的预期绑定到您的DataContexviaData属性BindingProxy。
<DataGridTextColumn Header="Price"
Binding="{Binding Price}"
IsReadOnly="{Binding Data.LockFields, Source={StaticResource proxy}}"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9314 次 |
| 最近记录: |