绑定动态生成的文本块 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 设置为列表
我正在使用 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 设置为列表