我在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的最小值和最大值! 问题是什么 ? 谢谢你的帮助。
。 现在编辑的问题。 感谢。
答案 0 :(得分:1)
DataContext
?Maxcamdistance
,而VM中的属性名称为Maxval
。答案 1 :(得分:1)
问题是您不使用依赖项属性或INotifyPropertyChanged来通知UI Minval和Maxval的值已更改。在这里查看我的答案:Bind boolean to visualstate
答案 2 :(得分:0)
感谢所有试图提供帮助的可爱用户。
最终我找到了解决方案。
事实上,它不需要INotifyPropertyChanged或依赖属性!
问题是在同一窗口中使用2个Windows窗体主机导致其中一个
numericupdown返回零!
我不知道为什么会这样,但我使用UserControl来克服这个问题。
用户控件支持多个Windows窗体主机,没有任何问题。
似乎wpf windows对托管Windows窗体有限制。
非常感谢。 要新鲜。