我需要调用大约50个不同的数据,用于最小值和最大值。我确信有一种比做以下更好的方法:
public void refreshminmaxvalues(List<minmaxvalues> listminmaxvalues)
{
txtMinA_1.Text = minmaxvalueslist[0].minvalue.ToString();
txtMaxA_1.Text = minmaxvalueslist[0].maxvalue.ToString();
txtMinB_1.Text = minmaxvalueslist[0].minvalueB.ToString();
txtMaxB_1.Text = minmaxvalueslist[0].maxvalueB.ToString();
txtMin_2.Text = minmaxvalueslist[1].minvalue.ToString();
txtMax_2.Text = minmaxvalueslist[1].maxvalue.ToString();
}
上面的代码从列表中获取最小值和最大值。 MinA
和MinB
是两个链接在一起的值,因此将与其他值进行不同的调用。过去txtMax_2
的所有内容都只有一分钟和一个最大值。
有没有人知道更好,更“有效”的方式来做这个代码,而不是只写出所有50多个值?
如果有帮助,这些是在XAML中编辑的值:
<!-- Minimum -->
<TextBox Name="txtMinA_1" Text=""/>
<TextBox Name="txtMinB_1" Text=""/>
<TextBox Name="txtMin_2" Text=""/>
<TextBox Name="txtMin_3" Text=""/>
<TextBox Name="txtMin_4" Text=""/>
<!-- Maximum -->
<TextBox Name="txtMaxA_1" Text=""/>
<TextBox Name="txtMaxB_1" Text=""/>
<TextBox Name="txtMax_2" Text=""/>
<TextBox Name="txtMax_3" Text=""/>
<TextBox Name="txtMaxH_4" Text=""/>
答案 0 :(得分:1)
您应该能够使用ItemsControl并绑定到:
<ItemsControl x:Name="Mins">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding minvalue}"></TextBox>
<TextBox Text="{Binding minvalueB}"></TextBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ItemsControl x:Name="Maxes">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding maxvalue}"></TextBox>
<TextBox Text="{Binding maxvalueB}"></TextBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
你可以像这样绑定一个类型:
Mins.ItemsSource = listminmaxvalues;
Maxes.ItemsSource = listminmaxvalues;
答案 1 :(得分:1)
如果您确切知道返回了多少数据,那么您应该使用模型和数据绑定。
例如:
YourXaml.xaml
编辑:在DLeh的答案中使用ItemsTemplateSelector,但我的其他内容仍然有意义并且是相关的。 <TextBox Name="txtMinA_1" Text="{Binding txtMinA_1.minvalue"/>
<TextBox Name="txtMinA_1" Text="{Binding txtMinB_1.maxvalue"/>
ect...
YourXaml.xaml.cs
public class YourXaml{
public YourXaml(){
this.DataContext = new YourViewModel();
}
}
YourViewModel.cs
public YourViewModel{
private minmaxvalues _txtMinA_1;
private minmaxvalues _txtMinB_1;
public minmaxvalues txtMinA_1
{
get{ return _txtMinA_1; }
set{ _txtMinA_1 = value; }
}
public minmaxvalues txtMinB_1
{
get{ return _txtMinB_1; }
set{ _txtMinB_1= value; }
}
}
通过使用此结构,您可以将视图(YourXaml.xaml)与模型和视图模型中的数据分离。它是WPF中一种更有效和行业认可的工作方式。
To learn more about MVVM go here.您将要了解DataBinding的内容。