2012-03-19 10 views
0

私は下のラベルに初期設定のテキスト「アプリケーションを終了しないでください」を入力します。 バックグラウンドタスクが完了すると、ラベルテキストが「次へ」をクリックして続行してください。wpfラベルのデフォルトテキスト

以下のようにデータバインディングを使用しました。最初の文字列は "アプリケーションを終了しないでください"です。 バックグラウンドタスクが完了すると、XMLファイルが更新され、ラベルテキストも更新されます。

<Label Name="label6_3" Content="{Binding XPath=/Cred/DB/Page6/label6_3}" Foreground="#FF004200" /> 

initial: 
<?xml version="1.0" encoding="utf-8"?> 
<Cred> 
<DB> 
<Page6> 
    <label6_3>Please do not quit the application.</label6_3> 
</Page6> 

final: 
<?xml version="1.0" encoding="utf-8"?> 
<Cred> 
     <DB> 
     <Page6> 
      <label6_3>Please click on Next to continue.</label6_3> 
     </Page6> 
    </DB> 
    </Cred> 

しかし、これでは問題がある、私は 、私はアプリケーション毎回を開始する前に、xmlファイルの変更を戻す必要がありそうでない場合は、最初の文字列をクリックしてください「」となり次に進みます。アプリケーションを終了しないでください」ではなく 『』

を、私はそれを避けることができる方法は?

のThをanks。

+2

私はあなたがGUIでの一時的なラベルのようなもののためのXMLバインディングを使用する必要があるとは思いません。 –

+0

なぜデータを表示するのにXMLを使用していますか?おそらく、イベントやデータバインディングに応じてラベルの内容を変更するトリガーを試してみるべきでしょう。 – Dror

+0

私はそれをどのようにすることができるかの例を教えていただけますか? – ac11

答えて

1

DataTriggerを使用してください。私はTextBlockの代わりにラベルを使用しますが、同じことは、あなたが使用しているもののようLabelに適用されます。

<TextBlock> 
     <TextBlock.Style> 
     <Style> 
      <Style.Triggers> 
      <DataTrigger Binding="{Binding TaskCompleted}" Value="True"> 
       <Setter Property="TextBlock.Text" Value="Task Completed!"/> 
      </DataTrigger> 
      </Style.Triggers> 
     </Style> 
     </TextBlock.Style> 
    </TextBlock> 
関連する問題