2011-09-13 5 views

答えて

0

「ローカル変数」へのバインドを意味する場合は、明らかに不可能です。いくつかのオブジェクトにDataContextを設定していて、論理的に聞こえないメソッドのローカル変数ではなく、そのプロパティまたは依存プロパティにのみバインドできます。

+0

これで何ができるのですか – Ravi

+0

コマンドをクラスのプロパティにバインドし、そのプロパティ値を目的のローカル変数に設定してコマンドを実行することができます。 –

+0

ありがとうたくさん私はあなたのsugestionを試してみます – Ravi

0

より具体的にする必要があります。いくつかのコードを投稿できますか?あなたが任意の単一のオブジェクトを渡すと、それをUnboxのことができるように

ICommand command = new ActionCommand(parameter => { this.CallFunction(parameter); }); 

パラメータは、オブジェクトのタイプです:

あなたのような何かを行うことができます。また、ActionCommandにはBlendまたは少なくともMicrosoft.Expression.Interactionsアセンブリが必要です。

を使用すると、ビューモデルでのICommandを定義し、XAMLでそれに結合しprobaly最高です。この場合には

[OK]を更新しました。ビューモデルで

は次のように実装を追加:XAMLで

public class AViewModel 
{ 
    private ICommand _ACommand; 

    public ICommand ACommand 
    { 
     get 
     { 
      if (this._ACommand == null) 
      { 
       this._ACommand = new ActionCommand(parameter => 
       { 
        // do stuff. 
       }); 
      } 

      return(this._ACommand); 
     } 
    } 

} 

はあなたがprobalyすでに行っているデータソースにバインドする必要があります。

<UserControl.Resources> 
    <local:AViewModel x:Key="AViewModelDataSource" /> 
</UserControl.Resources> 
<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource AViewModelDataSource}}"> 
<TextBox x:Name="ABCTextBox" /> 
<Button x:Name="AButton" Command="{Binding ACommand, Mode=OneWay}" CommandParameter="{Binding ElementName=ABCTextBox, Path=Text}" /> 
</Grid> 

希望します。

+0

私はボタンクリックコマンドパラメータでモデルを表示するビューでプロパティ値を送信したい。プロパティではローカル変数を代入する代わりに、ローカル変数を渡すかどうかを尋ねるプロパティ値を求めました。 – Ravi

+0

@Ravi更新が機能しない場合は、XAMLおよびView Modelクラスの一部を投稿できます。 –

関連する問題