2011-07-20 136 views
0

我只需要在数据绑定或按钮点击时禁用gridview按钮,因为我需要仅对现有记录禁用该按钮,并且当用户添加新记录时需要激活我的网格按钮。WPF 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> 

请帮助我。点击网格按钮后,我发现如何禁用按钮。我需要一种方法来禁用网格按钮。

+0

有没有办法找出天气记录现有的或新的..像物体是否新款属性..? 如果是这样你可以使用数据触发器做到这一点 – Bathineni

回答

0

如果我理解正确的问题比下面应该工作:

绑定按钮IsEnabled属性在视图模型的属性。

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

设置视图模型的若干意见的DataContext:

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

视图模型将执行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.aspx http://www.codeproject.com/KB/cs/BindBetterINotifyProperty.aspx

+0

Tx MichaleS实现INotifyPropertyChanged是解决方案。 – janitheshan