0

TextBlocka をSliderValueにバインドしようとしています。

だから私がしたことは、イベントTextBlockでスライダーの値にのテキスト値を設定することです。ValueChangedこれが私のものXAMLです:

<TextBlock Name="PartyNumber" Text="1"  
           FontSize="40" FontFamily="Calibri" 
           Width="100" FontWeight="Bold" Foreground="Green"/>
<Slider Name="PartyNumberSlider" Grid.Row="5" 
        Width="340" Style="{StaticResource SliderStyle1}" 
        Height="100" Maximum="12" 
        Minimum="1" Value="1" 
        ValueChanged="PartyNumberSlider_ValueChanged" />

私のコードビハインドは次のようなものです:

private void PartyNumberSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    PartyNumber.Text = PartyNumberSlider.Value.ToString();
}

アプリを起動すると、ValueChanged初期化時にイベントが発生し、 とNullReferenceExeption.

スライダーの値を変更することさえできません。

それで、私が間違っていることについて何か考えはありますか?

4

1 に答える 1

1

あなたが書いたものを WPF アプリケーションにドロップしたところ、期待どおりに動作しました。実際のデータ バインディングでこれを行うことをお勧めします。

<TextBlock Name="PartyNumber" Text="{Binding ElementName=PartyNumberSlider, Path=Value}" 
    FontSize="40" FontFamily="Calibri" Width="100" FontWeight="Bold" Foreground="Green"/>
<Slider Name="PartyNumberSlider" Grid.Row="5" Width="340" Height="100" Maximum="12" Minimum="1" Value="1" />

したがって、イベントやコード ビハインドは必要ありません。この値を処理または処理する必要がある場合は、コード ビハインドまたはビューモデルで両方の値を同じプロパティにバインドすることもできます。

とにかく、NullReferenceExeption がスローされているのはどこですか? よくわからない場合は、[デバッグ] -> [例外] に移動し、[共通言語ランタイムの例外] の横にある [スロー] にチェックを入れて、もう一度実行してみてください。

于 2013-10-02T18:16:20.853 に答える