0

1つのフォームでDataGridを使用するWPFアプリケーションがあります。私たちの要件は、そのデータグリッドの1つの列にボタンがあり、クリックするとファイルの参照を要求され、そのファイルのパスを取得することです。その後、そのパスは同じボタンを置き換えるtextBlockに設定されます。では、何をする必要がありますか?現在、パスを取得できますが、ブラウジングからパスを選択した後にTextBlockを表示する方法。

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

1 に答える 1

0

まず、Button_Click をそのように処理しないでください。ViewModelのどこかに を配置しICommand、Button をその Command にバインドする必要があります。

次に、テキストブロックに新しいテキストを表示するために必要なことは、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;
    }
}
于 2013-02-11T14:48:50.847 に答える