[英]WPF Tookit - IntegerUpDown
如何從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中獲取價值嗎?
這是我的口語課:
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;
}
}
您稍后可能想做的一件事是從代碼更新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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.