0

我在 wpf 中有一个滑块,希望用户设置它的最小值和最大值。

在xml代码中:

     <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
  1. DataContext为你的视图设置了吗?
  2. 在 Xaml 中,您Maxcamdistance在属性名称Maxval位于 VM 中时使用过。
  3. 在您的类上实施 INotifyPropertyChanged 并为您的属性提高 propertychanged。
  4. 在 button_click() 中设置属性而不是变量。
于 2013-09-18T13:52:55.803 回答
1

问题是您没有使用依赖属性或 INotifyPropertyChanged 来通知 UI Minval 和 Maxval 的值已更改。看看我的答案:Bind boolean to visualstate

于 2013-09-18T13:59:33.887 回答
0

感谢所有尝试提供帮助的可爱用户。

最后我找到了解决方案。

事实上,它不需要 INotifyPropertyChanged 或依赖属性!

问题是关于在同一窗口中使用 2 个 Windows 窗体主机导致其中一个

numericupdown 返回零!

我不知道为什么会这样,但我使用 UserControl 来克服这个问题。

用户控件支持多个 Windows 窗体主机没有任何问题。

似乎 wpf windows 对托管 windows 窗体有限制。

非常感谢。新鲜。

于 2013-09-19T10:31:12.717 回答