WPF 网格与子项。如何将子 IsEnable 绑定到父行
WPF Grid with child. How to bind child IsEnable to parent row
我是 WFP 的新手,我尝试为每一行使用 Telerik
网格和子元素。
这是我的 xaml:
<telerikGrid:RadGridView x:Name="rgvProductsMatricolari" ItemsSource="{Binding CustomerProducts}" ... >
<telerikGrid:RadGridView.ChildTableDefinitions>
...
</telerikGrid:RadGridView.ChildTableDefinitions>
<telerikGrid:RadGridView.Columns>
<telerikGrid:GridViewDataColumn x:Name="SelProductsMatricolari" Header ="" Width="Auto" TextAlignment="Center">
<telerikGrid:GridViewDataColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="chkProductsMatricolari" Style="{StaticResource chkStandard}" IsChecked="{Binding IsSelected, Mode=TwoWay}" HorizontalAlignment="Center" />
</DataTemplate>
</telerikGrid:GridViewDataColumn.CellTemplate>
</telerikGrid:GridViewDataColumn>
<!-- other columns -->
</telerikGrid:RadGridView.Columns>
<telerikGrid:RadGridView.HierarchyChildTemplate>
<DataTemplate>
<Grid IsEnabled="{Binding SelectedItem, ElementName=rgvProductsMatricolari}" Visibility="{Binding SelectedItem, ElementName=rgvProductsMatricolari, Converter={StaticResource BooleanToVisibility}}">
<!-- the grid -->
</Grid>
</DataTemplate>
</telerikGrid:RadGridView.HierarchyChildTemplate>
</telerikGrid:RadGridView>
如您所见,如果父行的 checkbox
(模型的 IsSelected
)为 select,我想禁用并隐藏子项 Grid
编辑。
我对 {Binding SelectedItem, ElementName=rgvProductsMatricolari}
有一些疑问,因为点击 checkbox
而不是 select 该行。
如何将子网格“IsEnabled
”属性绑定到父数据的“IsSelected
”属性?
试试这个:
<Grid IsEnabled="{Binding DataContext.IsSelected, RelativeSource={RelativeSource AncestorType=telerik:GridViewRow}}" ... >
我是 WFP 的新手,我尝试为每一行使用 Telerik
网格和子元素。
这是我的 xaml:
<telerikGrid:RadGridView x:Name="rgvProductsMatricolari" ItemsSource="{Binding CustomerProducts}" ... >
<telerikGrid:RadGridView.ChildTableDefinitions>
...
</telerikGrid:RadGridView.ChildTableDefinitions>
<telerikGrid:RadGridView.Columns>
<telerikGrid:GridViewDataColumn x:Name="SelProductsMatricolari" Header ="" Width="Auto" TextAlignment="Center">
<telerikGrid:GridViewDataColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="chkProductsMatricolari" Style="{StaticResource chkStandard}" IsChecked="{Binding IsSelected, Mode=TwoWay}" HorizontalAlignment="Center" />
</DataTemplate>
</telerikGrid:GridViewDataColumn.CellTemplate>
</telerikGrid:GridViewDataColumn>
<!-- other columns -->
</telerikGrid:RadGridView.Columns>
<telerikGrid:RadGridView.HierarchyChildTemplate>
<DataTemplate>
<Grid IsEnabled="{Binding SelectedItem, ElementName=rgvProductsMatricolari}" Visibility="{Binding SelectedItem, ElementName=rgvProductsMatricolari, Converter={StaticResource BooleanToVisibility}}">
<!-- the grid -->
</Grid>
</DataTemplate>
</telerikGrid:RadGridView.HierarchyChildTemplate>
</telerikGrid:RadGridView>
如您所见,如果父行的 checkbox
(模型的 IsSelected
)为 select,我想禁用并隐藏子项 Grid
编辑。
我对 {Binding SelectedItem, ElementName=rgvProductsMatricolari}
有一些疑问,因为点击 checkbox
而不是 select 该行。
如何将子网格“IsEnabled
”属性绑定到父数据的“IsSelected
”属性?
试试这个:
<Grid IsEnabled="{Binding DataContext.IsSelected, RelativeSource={RelativeSource AncestorType=telerik:GridViewRow}}" ... >