2013-02-11 142 views
0

我們有WPF應用程序,我們在一個表單上使用DataGrid。 我們的要求是,在Datagrid的一列中會有onr按鈕,點擊後會要求瀏覽文件,&它會採用該文件的路徑。 之後,該路徑將設置爲替代該按鈕的textBlock。 那麼需要做什麼? 目前我們能夠獲得路徑,但是從瀏覽中選擇路徑後如何顯示TextBlock。WPF Datagrid瀏覽按鈕問題

<toolkit:DataGridTemplateColumn Header="Attachment Copy Of Invoice" Width="180" > 
       <toolkit:DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <TextBlock x:Name="Attach" Uid="Ata" Text="{Binding Path=Attachment, UpdateSourceTrigger=PropertyChanged}" /> 
        </DataTemplate> 
       </toolkit:DataGridTemplateColumn.CellTemplate> 
       <toolkit:DataGridTemplateColumn.CellEditingTemplate> 
        <DataTemplate> 
         <Button Name="Click" Click="Click_Click" ></Button> 
        </DataTemplate> 
       </toolkit:DataGridTemplateColumn.CellEditingTemplate> 
      </toolkit:DataGridTemplateColumn> 

回答

0

首先,你不應該以這種方式處理Button_Click。您應該在您的ViewModel中的某處放置一個ICommand,並將Button綁定到該命令。

其次,所有你需要做的,以顯示在文本塊新的文本是更新Attachment屬性你綁定到:

<toolkit:DataGridTemplateColumn.CellEditingTemplate> 
    <DataTemplate> 
     <Button Command="{Binding MyCommand}"/> 
    </DataTemplate> 
</toolkit:DataGridTemplateColumn.CellEditingTemplate> 

視圖模型:

public class MyViewModel 
{ 
    public DelegateCommand MyCommand {get;set;} 

    public MyViewModel() 
    { 
     MyCommand = new DelegateCommand(ExecuteMyCommand); 
    } 

    private void ExecuteMyCommand(object parameter) 
    { 
     Attachment = WhateverYouWantToPlacethere; 
    } 
} 
+0

請你告訴我,在這種情況下ViewModel是什麼?它將如何工作?我是WPF的新手。謝謝。 – 2013-02-11 14:56:20

+0

http://en.wikipedia.org/wiki/Model_View_ViewModel – 2013-02-11 14:59:31

+0

[這個答案](http://stackoverflow.com/questions/14381402/wpf-programming-methodology/14382137#14382137)可能會幫助你 – 2013-02-11 15:00:07