WPF gridview按钮列只禁用按钮

本文关键字:按钮 gridview WPF | 更新日期: 2023-09-27 18:02:47

我需要禁用gridview按钮只有当数据绑定或按钮单击,因为我需要禁用该按钮仅为现有记录,当用户添加新记录需要激活我的网格按钮。

这里是我的XAML代码,

                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <Button Name="grdBtnAdd" Cursor="Hand"   Click="Button_Click_1" Width="20" Height="20" >
                                        <Button.Template>
                                            <ControlTemplate>
                                                <Border Style="{StaticResource borstyle}" BorderBrush="#282828"  BorderThickness=".5" CornerRadius="3" Name="bor"  >
                                                    <Image Width="20" Height="18" Source="/Images'plus1.png"></Image>
                                                </Border>
                                            </ControlTemplate>
                                        </Button.Template>
                                    </Button>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>

请帮帮我。我发现如何禁用按钮后单击网格按钮。我需要一个方法来禁用网格按钮。

WPF gridview按钮列只禁用按钮

如果我正确理解了这个问题,那么下面的代码应该可以工作:

将按钮的IsEnabled属性绑定到viewModel中的一个属性。

<Button Name="grdBtnAdd" IsEnabled="{Binding IsNewRecordsAvailable}" Cursor="Hand" Click="Button_Click_1" Width="20" Height="20">
...
</Button>

设置viewModel为视图的dataContext:

Sub New()
    Me.Datacontext = new viewModel
End Sub

viewModel将实现INotifyPropertyChanged,属性将看起来像这样:

 Private m_isNewRecordsAvailable As Boolean
    Public Property IsNewRecordsAvailable() As Boolean
        Get
            Return m_isNewRecordsAvailable
        End Get
        Set(ByVal value As Boolean)
            m_isNewRecordsAvailable = value
            NotifyPropertyChanged("IsNewRecordsAvailable")
        End Set
    End Property

现在当你想启用或禁用按钮时,只需将IsNewRecordsAvailable设置为true或false。

下面是一些例子:

http://msdn.microsoft.com/en-us/library/ms229614.aspxhttp://www.codeproject.com/KB/cs/BindBetterINotifyProperty.aspx