DataGridTemplate的可见性绑定不起作用。

3

我有一个数据网格模板列,我想将其绑定到我的项目页面上具有 System.Windows.Visibility 类型的属性。问题是,每当我编译以下 XAML 时,它会在 Blend 中抛出以下错误:“System.Windows.Data.Binding 无法转换为 System.Windows.Visibility”,而在运行时它会抛出以下错误:“设置属性 'System.Windows.Controls.DataGridColumn.Visibility' 引发了异常。”

<sdk:DataGridTemplateColumn Header="Settings" IsReadOnly="True" Visibility="{Binding ElementName=projectPage, btnEditVisibility}">
    <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Grid x:Name="grdEditCell" ToolTipService.ToolTip="Edit Project" >
                <sdk:Label Content="Edit" IsEnabled="{Binding isBtnEditEnabled, ElementName=projectPage}" Visibility="{Binding btnEditVisibility, ElementName=projectPage}" HorizontalAlignment="Center" VerticalAlignment="Center" MouseLeftButtonDown="btnEditProject_Click"/>
            </Grid>
        </DataTemplate>
    </sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>


projectPage是什么,它放在哪里? - Anatolii Gabuza
@anatoliiG projectPage 是我声明了一个类型为 System.Windows.Controls.Visibility 的属性的页面名称,它还使用了属性包装器进行实现。我还在该页面上实现了 INotifyPropertyChanged 接口。 - Allan Chua
1个回答

1

网格的ItemsSource设置为什么?元素绑定是否适用相对源绑定的相同规则。此外,btnEditVisibility是什么?如果它是一个按钮,你需要指定按钮的可见性属性或使用SomethingToVisibility转换器吗?

如果可能,请发布更多代码。


DataGrid的ItemsSource被绑定到了一个域上下文,Enabled和Visibility是在项目页面(我正在使用的页面)中实现的属性。 - Allan Chua

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接