首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于列表填充文本框值

基于列表填充文本框值
EN

Stack Overflow用户
提问于 2015-10-28 22:30:37
回答 2查看 172关注 0票数 0

对于最小值和最大值,我需要调用大约50条不同的数据。我相信有一种比这样做更好的方法:

代码语言:javascript
运行
复制
 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();

    }

上面的代码从列表中获取min和max的值。MinAMinB是链接在一起的两个值,因此调用方式与其他值不同。超过txtMax_2的所有内容将只有一个最小值和一个最大值。

有没有人知道比写出所有50+值更好、更“高效”的代码编写方式呢?

如果有帮助,可以在XAML中编辑以下值:

代码语言:javascript
运行
复制
          <!-- 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=""/>
EN

回答 2

Stack Overflow用户

发布于 2015-10-28 22:36:22

您应该能够使用ItemsControl并绑定到它:

代码语言:javascript
运行
复制
<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>

你可以像这样绑定一个类型到它上面:

代码语言:javascript
运行
复制
Mins.ItemsSource = listminmaxvalues;
Maxes.ItemsSource = listminmaxvalues;

更多信息:WPF Repeater (like) control for collection source?

票数 1
EN

Stack Overflow用户

发布于 2015-10-28 22:40:16

如果您确切地知道返回了多少条数据,那么您应该使用模型和数据绑定。

例如:

YourXaml.xaml

编辑:在DLeh的答案中使用ItemsTemplateSelector,但我的答案中的其他内容仍然有意义,并且是相关的。

代码语言:javascript
运行
复制
 <TextBox Name="txtMinA_1" Text="{Binding txtMinA_1.minvalue"/>
 <TextBox Name="txtMinA_1" Text="{Binding txtMinB_1.maxvalue"/>
 ect...

YourXaml.xaml.cs

代码语言:javascript
运行
复制
public class YourXaml{
     public YourXaml(){
        this.DataContext = new YourViewModel();
     }
}

YourViewModel.cs

代码语言:javascript
运行
复制
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中,这是一种更高效、更被业界接受的工作方式。

在学习DataBinding的同时,你也会想要了解这些。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33393816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档