C# 将文本框中的值添加到ListView
我对编程有点陌生,我正在编写一个简单的WPF程序来查找给定数字的因子。如何将文本框中的值添加到listview中,以便它查找因子。我正在使用以下代码:C# 将文本框中的值添加到ListView,c#,wpf,string,listview,textbox,C#,Wpf,String,Listview,Textbox,我对编程有点陌生,我正在编写一个简单的WPF程序来查找给定数字的因子。如何将文本框中的值添加到listview中,以便它查找因子。我正在使用以下代码: public List<int> Factor(int number) { List<int> factors = new List<int>(); number = Convert.ToInt32(txtFactorThis.Text); i
public List<int> Factor(int number)
{
List<int> factors = new List<int>();
number = Convert.ToInt32(txtFactorThis.Text);
int max = (int)Math.Sqrt(number);
for (int factor = 1; factor <= max; ++factor)
{
if (number % factor == 0)
{
factors.Add(factor);
if (factor != number / factor)
{
factors.Add(number / factor);
}
}
}
string stringfactors = string.Join(",", factors.ToArray());
txtPrimeFactors.Text = stringfactors;
return factors;
}
公共列表因子(整数)
{
列表因子=新列表();
数字=转换为32(txtFactorThis.Text);
int max=(int)Math.Sqrt(number);
对于(int factor=1;factor,考虑到上述代码在某个事件中被调用,您可以在xaml中创建一个列表框,然后将该xaml绑定到code behind中的属性
当您从这个方法返回一个列表时,只需在它之前设置该属性
所以,拥有一个像
public List<int> FactorsData{get;set;}
在xaml中,将列表框绑定到此FactorData属性
在xaml中添加如下列表框
<ListBox ItemsSource="{Binding DataContext.FactorsData}"/>
如上所述,将FactorsData属性添加到codeBehind中
你的方法现在应该做到这一点
public List<int> Factor(int number)
{
List<int> factors = new List<int>();
number = Convert.ToInt32(txtFactorThis.Text);
int max = (int)Math.Sqrt(number);
for (int factor = 1; factor <= max; ++factor)
{
if (number % factor == 0)
{
factors.Add(factor);
if (factor != number / factor)
{
factors.Add(number / factor);
}
}
}
string stringfactors = string.Join(",", factors.ToArray());
txtPrimeFactors.Text = stringfactors;
this.FactorsData = factors;
return factors;
}
公共列表因子(整数)
{
列表因子=新列表();
数字=转换为32(txtFactorThis.Text);
int max=(int)Math.Sqrt(number);
对于(int factor=1;factor您正在使用MVVM模式吗?嗯,不,我不这么认为。请尝试使用list.Items.Add(new ListViewItem(){Content=“headr”});其中list是listview的名称,或者您可以将列表绑定到listview。您必须在构造函数中为此设置控件的数据上下文才能使绑定工作。嗯,关于这一点,您如何在按钮单击事件中调用此类代码?对不起,我不知道
this.DataContext = this;
public List<int> Factor(int number)
{
List<int> factors = new List<int>();
number = Convert.ToInt32(txtFactorThis.Text);
int max = (int)Math.Sqrt(number);
for (int factor = 1; factor <= max; ++factor)
{
if (number % factor == 0)
{
factors.Add(factor);
if (factor != number / factor)
{
factors.Add(number / factor);
}
}
}
string stringfactors = string.Join(",", factors.ToArray());
txtPrimeFactors.Text = stringfactors;
this.FactorsData = factors;
return factors;
}