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

时间:2015-01-16 19:25:36

标签: wpf data-binding wpf-controls mvvm-light

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

我已经有了以下内容,但在运行应用程序时,我的视图中没有显示。

这是我的收藏:

        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);

它的作用是在此边框中创建一个边框,其中应该发生绑定。我想把这个属性捆绑起来.Dossier.Omschrijving(档案就是班级)。如果我只是在文本框中输入一个字符串就可以了。

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

我做错了什么?

修改

安全让我朝着正确的方向前进,ItemsControl with multiple DataTemplates for a viewmodel的答案让我完成了这项工作:)

1 个答案:

答案 0 :(得分:0)

通过所有这些并使用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设置为List