c# - 基于文本框动态更新WPF Slider

标签 c# wpf

我正在编写一个 WPF 应用程序,并且我有一个 slider 绑定(bind)到文本框,反之亦然。

我的问题是,当更改文本框的值时,我必须先单击文本框,然后才能更新 slider 的值。

我希望当用户在文本框中键入文本或当用户在文本框中按 Enter 时 slider 值发生变化。

这是我的代码:

XAML:

<Slider Name="sldrConstructionCoreSupplierResin" Minimum="0" Maximum="10" Grid.Column="1" Grid.Row="1" IsSnapToTickEnabled="True"/>
    <TextBox Name="txtConstructionCoreSupplierResin" Text="{Binding ElementName=sldrConstructionCoreSupplierResin, Path=Value, Converter={StaticResource RoundingConverter}}" Grid.Column="2" Grid.Row="1"/>

背后代码:

public class RoundingConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value != null)
            {
                double dblValue = (double)value;
                return (int)dblValue;
            }
            return 0;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value != null)
            {
                int ret = int.Parse(value.ToString());
                return ret;
            }
            return 0;
        }
    } 

最佳答案

默认情况下,当控件失去焦点时,绑定(bind)会更新。这就是为什么只有当您单击文本框时才能看到更改。您可以使用 UpdateSourceTrigger 更改此设置Binding 的属性,如下所示:

<TextBox Text="{Binding Value,ElementName=mySlider,UpdateSourceTrigger=PropertyChanged}" />

现在,只要 Text 属性发生更改,TextBox 就会更新其源代码,而不是在失去焦点时更新。

关于c# - 基于文本框动态更新WPF Slider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12421933/

相关文章:

c# - Mongodb 聚合组然后使用 C# 进行条件求和

c# - 如何简化一组静态对象之间的相似方法调用?

c# - 基于用户权限的自定义认证和授权

wpf - XAML - 如何在 StackPanel 中将控件彼此对齐

c# - WPF 按钮按下/释放绑定(bind)

c# - 使用 C# Google.Protobuf 将 ByteString 反序列化为对象

c# - 连接到 MYSQL 数据库错误(UWP C#)

c# - 尝试在 WPF/C# 中使用(系统范围)热键

wpf - WPF中如何显示多层控件?

wpf - 创建一个具有水平拉伸(stretch)的三个相等列的网格