2011-07-20 6 views
0

データバインドまたはボタンクリック時にのみ、グリッドビューボタンを無効にする必要があります。既存のレコードのみを無効にする必要があります。ここWPF gridviewボタン列のみボタンを無効にする

は私を助けてください

      <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> 

、私のXAMLコードです。グリッドボタンをクリックした後、ボタンを無効にする方法を見つけました。グリッドボタンを無効にする方法が必要です。

+0

レコードが存在している天候や新しいものを見つけるためにどのような方法は、オブジェクト内のisnewプロパティと同じように...ありますか..? データトリガーを使用してこれを行うことができる場合 – Bathineni

答えて

0

私は、次の動作するはずよりも正しく問題を理解している場合:

バインドビューモデル内のプロパティにあるボタンIsEnabledプロパティ。

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 

ビューのDataContextとしてViewModelに設定し

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

ボタンを無効にするには、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