Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 最小和最大绑定_Wpf - Fatal编程技术网

Wpf 最小和最大绑定

Wpf 最小和最大绑定,wpf,Wpf,我有两个文本框:min和max供用户输入。如果“最大”数字小于“最小”数字,则“最大”文本框中的数字将自动更改为与“最小”文本框中的“最小”数字相同的数字 用wpf和C实现它的最佳方法是什么?代码将是伟大的 谢谢 在ViewModel中定义int类型的两个属性MinValue和MaxValue(如果使用MVVM),并绑定到两个文本框 C# private int minValue; 私有整数最大值; 公共整数最小值 { 获取{return minValue;} 设置 { 最小值=最小值; Pro

我有两个文本框:min和max供用户输入。如果“最大”数字小于“最小”数字,则“最大”文本框中的数字将自动更改为与“最小”文本框中的“最小”数字相同的数字

用wpf和C实现它的最佳方法是什么?代码将是伟大的


谢谢

在ViewModel中定义int类型的两个属性MinValue和MaxValue(如果使用MVVM),并绑定到两个文本框

C#

private int minValue;
私有整数最大值;
公共整数最小值
{
获取{return minValue;}
设置
{
最小值=最小值;
PropertyChanged(即新PropertyChangedEventArgs(“MinValue”);
如果(最小值>最大值)
{
最大值=最小值;
}
}
}
公共整数最大值
{
获取{return maxValue;}
设置
{ 
最大值=最大值;
PropertyChanged(这是新的PropertyChangedEventArgs(“MaxValue”);
如果(最大值<最小值)
{
最小值=最大值;
}
}
}
Xaml:



感谢您在ViewModel中定义int类型的两个属性MinValue和MaxValue(如果使用MVVM),并绑定到两个文本框

C#

private int minValue;
私有整数最大值;
公共整数最小值
{
获取{return minValue;}
设置
{
最小值=最小值;
PropertyChanged(即新PropertyChangedEventArgs(“MinValue”);
如果(最小值>最大值)
{
最大值=最小值;
}
}
}
公共整数最大值
{
获取{return maxValue;}
设置
{ 
最大值=最大值;
PropertyChanged(这是新的PropertyChangedEventArgs(“MaxValue”);
如果(最大值<最小值)
{
最小值=最大值;
}
}
}
Xaml:



感谢您在我的WPF代码中加入我的实现方式,最小数值为0,最大数值为99。 希望这能有所帮助

<!-- WPF Code Sample.xaml -->
<TextBox 
    Text="1"
    Width="20"
    PreviewTextInput="PreviewTextInputHandler"
    IsEnabled="True"/>

/C#code Sample.xaml.cs
私有void previewtdeputHandler(对象发送者,TextCompositionEventArgs e)
{
//最小值为0,最大值为99
var textBox=发送方作为textBox;
bool bFlag=false;
如果(!string.IsNullOrWhiteSpace(e.Text)和&!string.IsNullOrWhiteSpace(textBox.Text))
{
字符串str=textBox.Text+e.Text;

bFlag=str.Length只是把我在WPF代码中实现的最小数值为0,最大数值为99。 希望这能有所帮助

<!-- WPF Code Sample.xaml -->
<TextBox 
    Text="1"
    Width="20"
    PreviewTextInput="PreviewTextInputHandler"
    IsEnabled="True"/>

/C#code Sample.xaml.cs
私有void previewtdeputHandler(对象发送者,TextCompositionEventArgs e)
{
//最小值为0,最大值为99
var textBox=发送方作为textBox;
bool bFlag=false;
如果(!string.IsNullOrWhiteSpace(e.Text)和&!string.IsNullOrWhiteSpace(textBox.Text))
{
字符串str=textBox.Text+e.Text;

bFlag=str.Length非常感谢。它起作用了。我只需要切换minValue=maxValue。非常感谢。它起作用了。我只需要切换minValue=maxValue。
<!-- WPF Code Sample.xaml -->
<TextBox 
    Text="1"
    Width="20"
    PreviewTextInput="PreviewTextInputHandler"
    IsEnabled="True"/>
// C# Code Sample.xaml.cs             
private void PreviewTextInputHandler(object sender, TextCompositionEventArgs e)
{
    // MIN Value is 0 and MAX value is 99   
    var textBox = sender as TextBox;
    bool bFlag = false;
    if (!string.IsNullOrWhiteSpace(e.Text) && !string.IsNullOrWhiteSpace(textBox.Text))
    {
        string str = textBox.Text + e.Text;
        bFlag = str.Length <= 2 ? false : true;
    }
    e.Handled = (Regex.IsMatch(e.Text, "[^0-9]+") || bFlag);
}