绑定到数据网格中另一列的对象值

时间:2015-04-20 09:07:18

标签: wpf

我有一个绑定到对象列表的数据网格。该对象的一个​​属性称为“NoOutput”,如果已设置,我想要禁用数据网格中同一行中的某些其他列(本例中为“值”),因此用户无法编辑这些值,如只要设置'NoOutput'。

<DataGrid SelectionUnit="FullRow" CanUserAddRows="False" CanUserDeleteRows="False" ItemsSource="{Binding Path=OutputList}"  AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Name" Width="2*" IsReadOnly="True" Binding="{Binding NameID}" />
        <DataGridTextColumn Header="Description" Width="4*" Binding="{Binding TemplateDescription}" />
        <DataGridCheckBoxColumn Header="NoOutput" Width="*" Binding="{Binding NoOutput}" />
        <DataGridTextColumn Header="Value" Width="*" Binding="{Binding Value}" IsReadOnly="{Binding NoOutput, Converter={StaticResource Invert}}" />
    </DataGrid.Columns>
</DataGrid>

问题是,IsReadyOnly属性的绑定似乎不会绑定到同一个源,就像DataGridTextColumn的Binding属性一样。

  

System.Windows.Data错误:2:找不到目标元素的管理FrameworkElement或FrameworkContentElement。 BindingExpression:路径= NoOutput;的DataItem = NULL; target元素是'DataGridTextColumn'(HashCode = 45236668); target属性为'IsReadOnly'(类型'Boolean')

看起来IsReadOnly绑定只能看到DataGrid的datacontext,而不能看到DataGridColumn的datacontext。我尝试用相对来源绑定,但这也不起作用。我也尝试绑定SelectedItem的内容,但我也无法使其工作。是否可以绑定另一列的值,但是数据网格的同一行?

(一切正常,但IsReadOnly绑定除外)

0 个答案:

没有答案