2012-02-05 65 views
0

我在XAML中聲明一個DataGrid如下:如何獲取Silverlight中viewmodel中的數據網格內按鈕的引用?

<sdk:DataGrid x:Name="ProductsForProjectDataGrid" AutoGenerateColumns="True" ItemsSource="{Binding Path=Products.ProductsForProject}"> 
        <sdk:DataGrid.Columns> 
      <sdk:DataGridTemplateColumn x:Name="DeleteTemplate" Width="10*"> 
       <sdk:DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 

         <Button x:Name="DeleteProductButton" Command="{Binding DeleteProductCommand}" CommandParameter="Products.SelectedProduct" > 

          <Button.Content> 

           <Image x:Name="DeleteProductImage" Visibility="Visible" Height="20" Source="C:\Documents and Settings\DELETE.GIF" Width="20"/> 
          </Button.Content> 
         </Button> 
        </DataTemplate> 
       </sdk:DataGridTemplateColumn.CellTemplate> 
      </sdk:DataGridTemplateColumn> 
      <sdk:DataGridTextColumn Binding="{Binding Product}" Header="Product Name" IsReadOnly="True" Width="40*"/>       

     </sdk:DataGrid.Columns> 

    </sdk:DataGrid> 

,並在視圖模型我的按鈕鏈接到一個命令,我可以利用這個得到參考DataGrid中,

_dlgProducts.ProductsForProjectDataGrid 

其中_dlgproducts爲對象, 現在我怎麼去刪除按鈕參考, 一旦我得到的參考,我可以命令綁定到它, 我需要像

_dlgProducts.ProductsForProjectDataGrid.DeleteProductButton 

什麼的,即時通訊不知道如何得到它...

謝謝:)

+0

不知道明白......你在這裏想達到什麼目的? – ken2k 2012-02-05 11:29:22

+0

@ ken2k我希望在viewmodel中的按鈕的引用.. – 2012-02-05 12:05:39

+2

這就是你的問題:你不應該有視圖模型中的視圖部分(按鈕,網格...)的**任何**引用。這裏有一個架構設計問題。 – ken2k 2012-02-05 12:08:18

回答

0

真的不知道你的問題是什麼。你想在視圖模型中設置命令Button(這是打破你的mvvm ...),但你有刪除命令綁定到XAML中的按鈕。如果我理解正確,你的綁定不起作用,你想在代碼後面做。如果是這樣,請看this的問題和答案。兩兩件事:

  • ,當你得到它的工作您CommandParameter結合應該類同此CommandParameter="{Binding}"
  • 你最好添加刪除圖像的應用資源,並使用該組/部件語法的Source財產,即像here
相關問題