cat*_*all 3 wpf code-behind itemscontrol
我一直在谷歌搜索这个问题几个小时,我遇到的最好的事情是ItemContainerGenerator,这不是我需要的
在我的主视图中,我有一个ItemsControl,它绑定到一个对象集合:
<ItemsControl ItemsSource="{Binding Path=Concepts}"
ItemTemplate="{StaticResource ActivationLevelTemplate}"
/>
Run Code Online (Sandbox Code Playgroud)
ActivationLevelTemplate只是另一个视图:
<DataTemplate x:Key="ActivationLevelTemplate">
<view:ConceptActivationView Height="50"/>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
在此视图中,有一个文本块,绑定到上述集合中对象的属性.该属性显示正确,现在我需要从视图的代码后面访问同一对象的其他属性.这似乎微不足道,但我无法让它发挥作用.
<TextBlock Text="{Binding Path=Name}"
HorizontalAlignment="Center"
/>
<d3:Plotter2D Name="Plotter"/>
Run Code Online (Sandbox Code Playgroud)
重要的是您尝试访问该对象的上下文.例如,如果您处理DataTemplate中的事件,您可以轻松地从发送方的DataContext中获取对象(必须是FrameworkElement),例如,如果我要处理按钮单击:
private void Button_Click(object sender, RoutedEventArgs e)
{
var button = (FrameworkElement)sender;
var employee = (Employee)button.DataContext;
//...
}
Run Code Online (Sandbox Code Playgroud)
实际上,如果您的整个视图都在DataTemplate中,您也可以直接从View的DataContext中获取对象.
| 归档时间: |
|
| 查看次数: |
5741 次 |
| 最近记录: |