【发布时间】:2019-05-10 19:44:09
【问题描述】:
我有一个 DataGrid,每行 DataGrid 包含四个按钮。
我的屏幕是这样的。假设我单击添加的开始按钮,然后我希望隐藏其他行上的所有按钮,例如删除、更新和删除,直到我单击添加的完成按钮并在处理完成后从 DataGrid 中删除该添加行。
我的其他功能工作正常,但唯一的问题是我点击添加行然后其他行上的其他按钮也是可点击的,所以我想隐藏它。
请帮我解决这个问题
<DataGrid Grid.Row="3" Grid.ColumnSpan="2" Name="gridview" Background="#b5d2fc" IsReadOnly="True" ItemsSource="{Binding}" HorizontalScrollBarVisibility="Auto"
SelectionMode="Single" SelectionUnit="FullRow" VerticalScrollBarVisibility="Auto" Loaded="gridview_Loaded"
CanUserDeleteRows="False" CanUserAddRows="False" CanUserResizeRows="False" VerticalAlignment="Top" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn MaxWidth="155" Width="155" Binding="{Binding [Task]}" Header="Name" />
<DataGridTemplateColumn MaxWidth="30" MinWidth="30">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button x:Name="Start" Content="Play" Click="Button_Click" IsEnabled="{Binding IsEnableButton, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" VerticalAlignment="Top" Foreground="Black" Background="White" Height="25" Width="30" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn >
<DataGridTemplateColumn MaxWidth="30" MinWidth="30">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button x:Name="Pause" Content="Pause" Click="Button_Click" IsEnabled="{Binding IsEnableButton, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" VerticalAlignment="Top" Foreground="Black" Background="White" Height="25" Width="30" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn MaxWidth="30" MinWidth="30">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button x:Name="Stop" Content="Stop" Foreground="Black" Click="Button_Click" IsEnabled="{Binding IsEnableButton, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" VerticalAlignment="Top" Background="White" Height="25" Width="30" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn MaxWidth="30" MinWidth="30">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button x:Name="Finish" Content="Finish" Foreground="Black" Click="Button_Click" IsEnabled="{Binding IsEnableButton, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" VerticalAlignment="Top" Background="White" Height="25" Width="30" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
这是我的 xmal 代码
【问题讨论】:
-
您必须将属性绑定到按钮的 IsEnabled 属性,实现 INotifyPropertyChanged 并根据您的逻辑在单击按钮时更改相关属性。我认为除此之外没有Minimal, Complete and Verifiable example 的任何人都可以帮助你