我想绑定我的列表框的数据。想象一下,我有类似的东西:
<ListBox ItemsSource="{Binding MyList}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text={Binding Value} />
<TextBlock Text={Binding AbsoluteValue} />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
MyList包含一个可观察的对象集合,该对象具有名为“Value”的属性 AbsoluteValue是视图模型的属性,作为MyList属性。
当然,seconde文本框将始终具有相同的值,但这正是我想要的:)
如何告诉绑定第二个文本框的datacontext不相同?
提前感谢您提供任何帮助
编辑:我的真实样本是StackPanel。 我试过了
private void StackPanel_Loaded(object sender, RoutedEventArgs e)
{
StackPanel stackPanel = sender as StackPanel;
stackPanel.SetBinding(StackPanel.VisibilityProperty, new Binding("Loaded") { Source = DataContext, Mode = BindingMode.TwoWay });
}
但它不起作用
答案 0 :(得分:0)
XAML:
<TextBlock x:Name="tbAbsoluteValue" Loaded="AbsoluteValue_Loaded" />
代码隐藏:
void AbsoluteValue_Loaded(object sender, RoutedEventArgs e)
{
TextBlock absoluteValue = sender as TextBlock;
absoluteValue.SetBinding(TextBlock.TextProperty, new Binding("AbsoluteValue") { Source = VIEW_MODEL_OBJECT, Mode = BindingMode.TwoWay });
}
这是实现目标的一种方法,您也可以使用转换器,或者在StaticResource
中为VM创建Resources
并将其作为源绑定。