WPF Tookit - IntegerUpDown
本文关键字:IntegerUpDown Tookit WPF | 更新日期: 2023-09-27 18:10:30
如何从IntergerUpDown控件获得值?我在用这个:http://wpftoolkit.codeplex.com/wikipage?title=NumericUpDown下面是MainWindow.xaml
的代码 <extToolkit:IntegerUpDown Value="{Binding Mode=TwoWay, Path=CurrentCount}" HorizontalAlignment="Left" Margin="119,111,0,148" Increment="1" Maximum="10" Minimum="1" Width="100"/>
下面是MainWindow.xaml.cs
的代码 public int CurrentCount { get; set; }
private void button1_Click(object sender, RoutedEventArgs e)
{
CurrentCount = 10;
int len = Talker.BlahBlahBlah(textBox1.Text, CurrentCount);
}
我想把用户选择的值作为整型传递给方法BlahBlahBlah。我是否需要创建一个视图模型并将其绑定到CurrentValue属性?你能给我提供从UI中获取值的示例代码吗?这是我的Talker类:
class Talker
{
public static int BlahBlahBlah(string thingToSay, int numberOfTimes)
{
string finalString = "";
for (int i = 0; i < numberOfTimes; i++)
{
finalString = finalString + thingToSay + "'n";
}
MessageBox.Show(finalString);
return finalString.Length;
}
}
这是ViewModelBase中的方法:
public virtual int CurrentCount
{
get { return _CurrentCount; }
set
{
_CurrentCount = value;
OnPropertyChanged("CurrentCount");
}
}
问题是我如何将它们连接在一起??
和平安德鲁正确的mvvm方法是将Value绑定到ViewModel上的属性。
public int CurrentCount
{
get { return _CurrentCount; }
set
{
_CurrentCount = value;
}
}
我推荐Josh Smith关于MVVM的优秀文章。
稍后您可能想要做的一件事是从代码中更新CurrentCount
,并使其在IntegerUpDown控件中正确反映。要做到这一点,您必须继承INotifyPropertyChanged
接口。你可以使用他的ViewModelBase
类做到这一点。然后,你的ViewModel
继承ViewModelBase
,可以调用OnPropertyChanged
发送属性更改通知:
public int CurrentCount
{
get { return _CurrentCount; }
set
{
_CurrentCount = value;
base.OnPropertyChanged("CurrentCount");
}
}
一种方法是命名IntegerUpDown
控件
<extToolkit:IntegerUpDown
x:Name="CurrentCountUpDown"
HorizontalAlignment="Left"
Margin="119,111,0,148"
Increment="1"
Maximum="10"
Minimum="1"
Width="100"/>
然后在事件处理程序中通过名称引用该控件:
private void button1_Click(object sender, RoutedEventArgs e)
{
int len = Talker.BlahBlahBlah(textBox1.Text, CurrentCountUpDown.Value);
}