2013-02-11 92 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