C# 如何将项目列表绑定到stackpanel内的文本框

C# 如何将项目列表绑定到stackpanel内的文本框,c#,wpf,xaml,data-binding,C#,Wpf,Xaml,Data Binding,我是Windows应用程序开发新手,正在尝试实现如下显示: 标签号:1标签号:2标签号:3//屏幕左端 标签号:4标签号:5…依此类推 有些人喜欢这样: 我在Windows10通用应用程序开发中这样做 提前谢谢 我的Xaml代码: <StackPanel Orientation="Horizontal"> <TextBlock Text="{x:Bind comment_tags}" /> </StackPanel> 我的c#代码: p

我是Windows应用程序开发新手,正在尝试实现如下显示:

标签号:1标签号:2标签号:3//屏幕左端

标签号:4标签号:5…依此类推

有些人喜欢这样:

我在Windows10通用应用程序开发中这样做

提前谢谢

我的Xaml代码:

 <StackPanel Orientation="Horizontal">
      <TextBlock Text="{x:Bind comment_tags}" />
 </StackPanel>

我的c#代码:

public List comments_tags=new List();
公共主页()
{
this.InitializeComponent();
对于(int i=0;i<20;i++)
{
添加注释(标签号:+i);
}
}
我尝试的新方法:

    public List<Border> comment_tags = new List<Border>();

        for (int i = 0; i < 20; i++)
        {
            Border b_temp = new Border();
            b_temp.CornerRadius = new CornerRadius(3);
            b_temp.Background = new SolidColorBrush(Colors.Aqua);
            TextBlock t = new TextBlock();
            t.Text = "Tag no: " + i;
            t.Foreground = new SolidColorBrush(Colors.Aqua)
            b_temp.Child = t;
            comments_tags.Add(b_temp);
        }
public List comment_tags=new List();
对于(int i=0;i<20;i++)
{
边框b_temp=新边框();
b_温度角半径=新角半径(3);
b_temp.Background=新的SolidColorBrush(Colors.Aqua);
TextBlock t=新的TextBlock();
t、 Text=“位号:”+i;
t、 前景=新的SolidColorBrush(Colors.Aqua)
b_temp.Child=t;
添加注释和标签(b_temp);
}

不能将字符串列表直接绑定到文本框控件。由于TextBox控件仅显示一个字符串,因此可以将列表中的所有项目添加到字符串属性,该属性应用于将文本绑定到TextBox

您可以将文本绑定到文本框,如下所示:

XAML

 <StackPanel Orientation="Horizontal">
      <TextBlock Text="{Binding TBProperty}" />
 </StackPanel>

C#

public List comments_tags=new List();
公共字符串属性
{
得到;
设置
}
公共主窗口()
{
初始化组件();
this.DataContext=this;
对于(int i=0;i<20;i++)
{
添加注释(标签号:+i);
}
foreach(注释\标记中的字符串注释)
{
TBProperty+=注释+“”;
}
}

此处处理标记的方法不正确,此处不需要文本框,您需要一个能够理解标记是什么以及如何处理标记的控件

请看一看并了解如何实现这一点

或者可以使用最小的实现

<ItemsControl ItemsSource="{x:Bind Items}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>

        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Border BorderBrush="PowderBlue" CornerRadius="5" BorderThickness="2" Height="45" Margin="5" >
                    <TextBlock Text="{Binding}" VerticalAlignment="Center" Margin="5"/>
                </Border>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

谢谢Akansha。。但是我需要在每个标签上加上这样的边框。。我认为这不适用于这个过程。。。如果可能的话,也请提一下。如果我们能够将它绑定到xaml控件“public List comments_tags=new List();”,这也会很有帮助?我不明白这个评论?希望你现在能看到我的新方法。非常感谢。你们试过我在下面的答案里贴的吗?是的,我试过了。它没有将字符串绑定到Textblock。它显示空样式框windows 10 ItemSource={x:Bind Items}inItemControl和DataTemplate Text={Binding}的简单修改。现在这对我有用了。多谢你了
 public List<string> comments_tags = new List<string>();

        public string TBProperty
        {
            get;
            set;
        }

        public MainWindow()
        {
            InitializeComponent();

            this.DataContext = this;

            for (int i = 0; i < 20; i++)
            {
                comments_tags.Add("Tag no: " + i);
            }

            foreach (string comment in comments_tags)
            {
                TBProperty += comment + " ";
            }

        }
<ItemsControl ItemsSource="{x:Bind Items}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>

        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Border BorderBrush="PowderBlue" CornerRadius="5" BorderThickness="2" Height="45" Margin="5" >
                    <TextBlock Text="{Binding}" VerticalAlignment="Center" Margin="5"/>
                </Border>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
 public MainWindow()
    {
        InitializeComponent();
        Items = new[] {"ABC", "DEF"};
        this.DataContext = this;
    }
    public string[] Items
    { get; set; }