0

textBlock コントロールがあり、それを textBlock を制御するクラスに渡して特定のメッセージを表示するとします。

1) クラスでメソッドを呼び出すときに、textBlock にメッセージを表示させたい。例「接続を確認しています....」

2) メソッドが必要なタスクを完了すると、textBlock の可視性が折りたたまれます。

XAMLで:私は持っています

a) textBlock name=textBlockMsg b) クラスを呼び出すボタン

あなたの助けに感謝。

- アップデート :

プロジェクト内のこのクラスファイル

パブリック クラス GeoCalculation
{

     public GeoCalculation() { }


  public void CalculateDistance()
  {
        //- 開始 -- textBlockMsg を表示したい : 進行中......

       - コード

     //-- 終了時-----、textBlockMsg の可視性は崩壊します


   }

}

4

2 に答える 2

2

で名前を付けた場合TextBox、これは機能しますXAMLtextBlockMsg

編集 //INotifyPropertyChanged全体を実装しませんそれを行う方法を確認します:実装

public class CalculationClass : INotifyPropertyChanged    
{
      public void  CalculateDistance()
      {
       TextToBeBound = "in progress..."

       --code 

       VisibilityToBeBound = Collapsed;

      }
      public string TextToBeBound
      {  //... insert the implement of this property + NotifyPropertyChanged
        get {...} 
        set {...}
      }

      public Visibility VisibilityToBeBound
      {  //... insert the implement of this property + NotifyPropertyChanged
        get {...} 
        set {...}
      }

}

次に、XAMLに次を追加します。

<TextBlock x:Name="txtBlocMsg"  Visibility={"Binding VisibilityToBeBound"}  Text={Binding TextToBeBound"}/>

DataContextUIのをクラスに設定することを忘れないでください(私の場合)CalculationClass

あなたは行ってもいいはずです。これがすべて新しい場合。データバインディング+MVVMパターンについて読むことをお勧めします。

編集 UI要素をモデル/ビジネスクラスに渡すことは悪い習慣です。MVVMパターンを使用する必要があります。

お役に立てれば。

于 2012-07-04T14:05:33.503 に答える
0
  1. TextBock を渡すパラメータを使用できます。

    public void CalculateDistance(TextBlock tb) { tb.Text = "進行中..."

    - コード

    tb.Visibility = Visibility.Collapsed; }

  2. クラスのコンストラクターを使用して、処理する必要があるテキストブロックを挿入できます

    public class GeoCalculation { プライベート TextBlock _tb;

    public GeoCalculation(TextBlock tb)
    {
        _tb = tb;
    }
    
    public void  CalculateDistance()
    {
        _tb.Text = "in progress..."
    
       //code 
    
       _tb.Visibility = Visibility.Collapsed;
    }
    

    }

ちなみに、ViewModel と DataBinding を使用する方が良いでしょう。そこで、クラス (メソッド) を使用して、UI (テキストボックス) のテキストを提供できます。

ただし、注意してください。これを行う .net の方法があります。GeoCoordinate クラスには、2 つのジオポイント間の距離を計算するメソッド「GetDistanceTo」が含まれています。http://msdn.microsoft.com/en-us/library/system.device.location.geocoordinate.getdistanceto.aspxを参照してください。

于 2012-07-04T14:18:07.083 に答える