0

wpf にスライダーがあり、ユーザーが必要で、その最小値と最大値を設定します。

xaml コードで:

     <Slider x:Name="slider1" Width="34" Minimum="{Binding Path=Minval}" Value="10"    Height="105" Margin="5,5,5,5"  Maximum="{Binding Path=Maxval}"/>

      <TextBox  Height="23" HorizontalAlignment="Left" Margin="5,5,5,5" Name="minvaltxt" VerticalAlignment="Top" Width="120" />

<TextBox  Height="23" HorizontalAlignment="Left" Margin="5,5,5,5" Name="maxvaltxt" VerticalAlignment="Top" Width="120" />

   <Button Content="Apply" Name="btn"  Height="23" HorizontalAlignment="Left" Margin="5,5,5,5" VerticalAlignment="Top" Width="24" Click="btn_Click"  />

コードビハインド:

    private double maxval = 80;
    public double Maxval
    {

        get { return maxval; }
        set { value = maxval; }
    }

    private double minval = 5;
    public double Minval
    {

        get { return minval; }
        set { value = minval; }
    }


     private void btn_Click(object sender, RoutedEventArgs e)
     {
      minval= double.Parse(minvaltxt.Text);
      maxval= double.Parse(maxvaltxt.Text);
     slider1.Minimum = Minval
     slider1.Maximum = Maxval;

     }

ただし、silder の最小値と最大値は更新されません。何が問題ですか ?助けてくれてありがとう。

. 質問が編集されました。ありがとう。

4

3 に答える 3

1

問題は、依存関係プロパティまたは INotifyPropertyChanged を使用して、Minval と Maxval の値が変更されたことを UI に通知しないことです。ここで私の答えを見てください: boolean を visualstate にバインドする

于 2013-09-18T13:59:33.887 に答える
1
  1. ビューに を設定しましたDataContextか?
  2. Xaml ではMaxcamdistance、プロパティ名がMaxvalVM にあるときに使用しました。
  3. クラスに INotifyPropertyChanged を実装し、プロパティの propertychanged を発生させます。
  4. button_click() では、変数ではなくプロパティを設定します。
于 2013-09-18T13:52:55.803 に答える
0

助けようとするすべての素敵なユーザーに感謝します。

最後に、解決策を見つけました。

実際、INotifyPropertyChanged や依存関係プロパティは必要ありませんでした。

問題は、同じウィンドウで 2 つの Windows Form Host を使用して、いずれかを引き起こすことに関するものでした。

数値アップダウン ゼロを返す!

なぜこれが発生したのかはわかりませんが、UserControl を使用してこの問題を克服しました。

ユーザー コントロールは、複数の Windows フォーム ホストを問題なくサポートします。

wpf windows には、windows フォームをホストするための制限があるようです。

どうもありがとう。新鮮です。

于 2013-09-19T10:31:12.717 に答える