项的绑定属性集合中的控件

本文关键字:控件 集合 属性 绑定 | 更新日期: 2023-09-27 17:55:20

我的理论代码:

ScriptContainerUserControl.xaml

<ItemsControl x:Name="ScriptItemsControl">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
             <Grid>
             <TextBox x:Name="pTB" Text="{Binding PhasePriority}" />
             <TextBox x:Name="nTB" Text="{Binding Name}" />
             <TextBox x:Name="dTB" Text="{Binding Description}" />
             </Grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

ScriptContainerUserControl.xaml.cs

public ScriptContainerUserControl() : base()
{
    InitializeComponent();
    ScriptItemsControl.ItemsSource = PScriptCollection;
}
//PScriptCollecion is of type SynchronizedObservableCollection<ProcessScript>
//ProcessScript has the elements PhasePriority, Name, and Description

上面的代码是否适用于确保

 ScriptItemsControl[i].dTB.Text = PScriptCollection[i].Description? 

还是不能这样绑定?

项的绑定属性集合中的控件

Fenster,

它绝对应该有效,前提是您为 ProcessScript 类中的所有三个属性实现了 getter setter 属性。

使用数据模板时 - 这意味着您将 itemscontrol 的每个元素的数据上下文设置为集合的一个元素。

所以在这里每个 Itemcontrol 元素都会查看 ProcessScript 对象,如果该对象具有所有三个属性,您应该会看到数据。

这种方式不可能做到这一点。您实际上没有设置绑定...若要支持观察集合上的更改,应将集合绑定到 ItemsControl 的 ItemsSource 属性。代替行:

ScriptItemsControl.ItemsSource = PScriptCollection;

试试这个

ScriptItemsControl.ItemsSource = new Binding("PScriptCollection");