【问题标题】:trouble about setting value of slider in wpf?在 wpf 中设置滑块值的麻烦?
【发布时间】:2013-09-18 13:50:00
【问题描述】:

我在 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 的最小值和最大值! 问题是什么 ? 感谢您的帮助。

。 现在编辑的问题。 谢谢。

【问题讨论】:

  • 对于您的 xaml 中的初学者,最大值绑定到 Maxcamdistance 并在代码中称为 maxval ...
  • @Omribitan:您好,很抱歉犯了错误。该问题已被编辑。
  • @Omribitan:谢谢,我找到了解决方案。

标签: c# wpf data-binding slider


【解决方案1】:
  1. 您是否为视图设置了DataContext
  2. 您在 Xaml 中使用了 Maxcamdistance,而在 VM 中属性名称为 Maxval
  3. 在您的类上实现 INotifyPropertyChanged 并为您的属性引发 propertychanged。
  4. 在 button_click() 中设置属性而不是变量。

【讨论】:

  • @ nit:谢谢,我找到了解决方案。为你 +1
【解决方案2】:

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

【讨论】:

  • @Torben_Schramme:谢谢,我找到了解决方案。为你 +1
【解决方案3】:

感谢所有愿意提供帮助的可爱用户。

我终于找到了解决办法。

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

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

numericupdown 返回零!

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

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

看来wpf windows对托管windows窗体有限制。

非常感谢。 保持新鲜。

【讨论】:

    猜你喜欢
    • 2015-09-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    相关资源
    最近更新 更多