绑定动态生成的文本块 WPF MVVM Light

Binding dynamically generated textblock WPF MVVM Light

我正在使用 MVVMM Light WPF,我想执行以下操作:动态生成文本框并将它们绑定到 class 的 属性。

我已经有了以下内容,但是当 运行 应用程序时它没有出现在我的视图中。

这是我的 collection:

        private ObservableCollection<Border> _controllekes;
    public ObservableCollection<Border> Controllekes
    {
        get { return _controllekes; }
        set
        {
            _controllekes = value;
            RaisePropertyChanged("Controllekes");
        }
    }

这是我的 xaml:

                        <ItemsControl ItemsSource="{Binding Path=Controllekes}">

                    </ItemsControl>

这是我填写itemsource的部分"Controllekes":

                Controllekes = new ObservableCollection<Border>();
            Border border = new Border();
            border.BorderThickness = new System.Windows.Thickness(5);
            border.BorderBrush = Brushes.AliceBlue;
            border.Padding = new System.Windows.Thickness(5);
            TextBlock tb = new TextBlock();
            tb.Background = Brushes.Red;
            Binding nameTextBinding = new Binding("Controllekes");
            nameTextBinding.Path = new System.Windows.PropertyPath(this.Dossier.Omschrijving);
            nameTextBinding.Mode = BindingMode.OneWay;
            //nameTextBinding.Source = this.Dossier.Omschrijving;
            tb.SetBinding(TextBlock.TextProperty, nameTextBinding);
            border.Child = tb;
            this.Controllekes.Add(border);

它的作用是创建一个边框,在此边框中有一个文本块,绑定应该在该文本块中进行。我想绑定属性this.Dossier.Omschrijving(档案是class)。如果我只是在文本框中输入一个字符串,它就可以工作。

在运行时生成了边框,但文本块仍为空。 object Dossier.Omschrijving 包含信息。

我做错了什么?

编辑:

safe 把我引向了正确的方向,ItemsControl with multiple DataTemplates for a viewmodel 的回答让我完成了工作:)

通过所有这些并使用 ItemTemplate

<ItemsControl x:Name="ic">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <CheckBox IsChecked="{Binding yourboolProperty}"/>
                <TextBlock Background="Red" Text="{Binding yourStringProperty}"></TextBlock>
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

并将 ic 的 ItemsSource 设置为列表