2016-06-28 4 views
0

私はfooといういくつかのWPFコントロールを持っています。 DevExpress社LoadingDecorator有するグリッド構造は、そのようになります。バインディング

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="60" /> 
    </Grid.RowDefinitions> 

    <StackPanel Grid.Row="0"> 
     <dx:LoadingDecorator Name="Decorator" IsSplashScreenShown="{Binding Path=ShowLoader}" SplashScreenLocation="CenterWindow"> 
      <dx:LoadingDecorator.SplashScreenTemplate> 
       <DataTemplate> 
        <dx:WaitIndicator DeferedVisibility="True"> 
         <dx:WaitIndicator.ContentTemplate> 
          <DataTemplate> 
           <StackPanel Orientation="Vertical"> 
            <TextBlock Text="Operation:" FontSize="15"/> 
            <TextBlock Text="{Binding Path=CurrLoadStat}"/> 
           </StackPanel> 
          </DataTemplate> 
         </dx:WaitIndicator.ContentTemplate> 
        </dx:WaitIndicator> 
       </DataTemplate> 
      </dx:LoadingDecorator.SplashScreenTemplate> 
     </dx:LoadingDecorator> 
    </StackPanel> 

    ... 

</Grid> 

ベースビューモデルクラスはグリッドに制御するためのDataContextとして使用INotifyPropertyChangedインターフェイスとのViewModelクラス(FooViewModel)は、上述したことから継承実装します。私は、第二のTextBlock要素のテキストプロパティを変更するには、プロパティを実装している:

 private string currLoadStat = "Preparing data..."; 

     public string CurrtLoadStat 
     { 
      get 
      { 
       return currLoadStat; 
      } 
      set 
      { 
       currLoadStat = value; 
       OnPropertyChanged("CurrLoadStat"); 
      } 
     } 

私の問題は、命令を結合することは仕事と私は最初のTextBlockに定義されているテキストだけを見ていないということです。 は、あなたは私にこの問題を解決するためにいくつかのソリューションを提供することができますか?

答えて

2

あなたのプロパティには、名前の途中で「t」を持っていますが、OnPropertyChangedに渡す、あなたの結合パス(XAML)と魔法の文字列にはありません。あなたはPropertyChangedイベントメソッドを上げるときに渡す文字列は正確あなたのビューモデルのプロパティ名と一致する必要があります。

あなたがC#5または6を使用している場合は、その後のアプローチoutlined hereのいずれかを使用するように切り替えると、あなたは魔法の文字列を渡すための必要性を排除するであろう。

+0

はまだ動作しません。他のアイデア? –

+0

実行時出力ウィンドウにバインディングエラーが表示されますか?一時的に 'Text = {Binding}'に変更すると、Textblockに何かが現れますか?それは問題が道ではないことを排除するでしょう。 – blins

+0

出力ウィンドウのエラー: "System.Windows.Dataエラー:40:BindingExpressionパスエラー: 'CurrLoadStat'プロパティが 'オブジェクト' ''文字列 '(HashCode = -860452824)'に見つかりません 'BindingExpression:Path = CurrLoadStat; DataItem = 'String'(HashCode = -860452824);ターゲット要素は 'TextBlock'(Name = '');ターゲットプロパティは 'Text'(タイプ 'String')です。 Text = {Binding}へのバインドを変更すると、DevExpressプロパティから取得したテキスト「Loading ...」のみが表示されます。 –

関連する問題