後、私は、テキストファイル内の値を修正するプログラムを書いています。私のxamlにはステータス/進行状況を報告するはずのテキストボックスがあります。 "waiting" =プログラムが始まる前に、 "processing" =プログラムがファイルを処理しています。 "done" =ファイルが処理されました。ここで変更するテキストは、再度、ランタイム
は私のテキストフィールドのXAMLコードとRUNボタンです:
を私は、このさまざまな方法を試してみました:
<TextBox x:Name="statusBox" HorizontalAlignment="Left" Height="23" Margin="130,332,0,0" TextWrapping="Wrap" Text="waiting" VerticalAlignment="Top" Width="120" FontSize="14" TextAlignment="Center" IsReadOnlyCaretVisible="True" >
<Button Content="Run"
Name="Run"
HorizontalAlignment="Left"
Margin="562,27,0,0"
VerticalAlignment="Top"
Width="53"
Click="Run_Click"
RenderTransformOrigin="-0.305,0.487" Height="19">
<Button.BindingGroup>
<BindingGroup Name="btnOpen"/>
</Button.BindingGroup>
<Button.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="-0.848"/>
<TranslateTransform/>
</TransformGroup>
</Button.RenderTransform>
</Button>
ここで私が午前の問題があります。私が下にあるのは、最新の試みです。
//In XAML, the status defaults to "waiting".
public class Operate
{
public void operations()
{
statusBox.Text = "processing";
... Perform Text Operations
status.Text = "finished";
}
}
プログラムを実行すると、ステータステキストボックスに「待機中」が表示されます。しかし、[実行]をクリックするとプログラムが始まりますが、テキストには「待機中」と表示されます。そして、プログラムの実行が終了すると、その間に「処理中」に変化することなく、テキストが「終了」に変わります。
ご協力いただきまして誠にありがとうございます。私は多くのコンソールアプリケーションをプログラミングしましたが、wpfには比較的新しいです。
ありがとうございました。
私は、これは単なる誤植が、 'statusBox.Text'なく' status.Text'だと思います。とにかく、すべてを削除して 'statusBox.Text =" processing ";を' keep 'すると変更されますか? –
長い操作で作業するには、 'ThreadPool'を使う必要があります。ここに例があります:http://stackoverflow.com/questions/36521365/run-program-after-wpf-windows-form-appears –
これについては実際には100の方法がありますが、最も良いのはASYNCとバインディング。 WPF/XAMLでバインディングを開始する方法を学ぶと、それは長い道のりになります。 –