【发布时间】:2012-03-22 08:14:38
【问题描述】:
我有一个列表框,它有多个用于其项目的数据模板。使用转换器选择数据模板并解释 ListBox 的对象集合。
在转换器内部,我试图将 datacontext(lisbox 外部)的属性绑定到数据模板的 TextBox 控件。
列表框:
<telerik:RadListBox
x:Name="listBox2"
ItemsSource="{Binding MyCollection, Mode=TwoWay}"
VerticalAlignment="Top" Height="400">
<telerik:RadListBox.ItemTemplate>
<DataTemplate>
<ContentControl Content="{Binding}"
ContentTemplate="{Binding Converter={StaticResource myTestConverter}, ConverterParameter={StaticResource myViewModel}}" />
</DataTemplate>
</telerik:RadListBox.ItemTemplate>
</telerik:RadListBox>
数据模板:
<DataTemplate x:Key="TestResource1">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding propertyLabel}"
FontStyle="Italic" Width="120" />
<TextBox x:Name="valueField"
FontSize="12" Width="50"
FontWeight="Bold" />
</StackPanel>
</DataTemplate>
Converter的convert方法内部:
_dt = Application.Current.Resources["TestResource1"] as DataTemplate;
var context = _dt.LoadContent();
var ctrl = FindControlByType<TextBox>(context, "valueField");
Binding binding = new Binding("DataContext.Value1");
binding.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor) { AncestorType = typeof(MainPage) };
TextBox txtBox = ctrl as TextBox;
BindingOperations.SetBinding(txtBox, TextBox.TextProperty, binding);
这不起作用。知道我做错了什么吗?
谢谢。
【问题讨论】:
标签: silverlight xaml mvvm silverlight-5.0