0
這裏內結合爲用戶控件對我的代碼:獲取用戶控件的DataContext屬性,從控制
<UserControl x:Class="UZ.ActivitySink.GUI.Views.POSsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Views="clr-namespace:UZ.ActivitySink.GUI.Views">
<DockPanel>
<TreeView ItemsSource="{Binding Types}" x:Name="POSTree" Background="{x:Null}" HorizontalAlignment="Left" FontSize="14"
Visibility="{Binding DataContext.TreeVisibility, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Views:POSsView}}, Mode=TwoWay}">
</TreeView>
<StackPanel x:Name="ErrorPanel"
Visibility="{Binding DataContext.ErrorMessageVisibility, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Views:POSsView}}, Mode=TwoWay}" Margin="20">
</StackPanel>
</DockPanel>
</UserControl>
我分配一個DataContext對象在它的構造控制
DataContext = _viewModel;
_viewModel有屬性名爲TreeVisibility和ErrorMessageVisibility類型的Visibility,但屏幕上的Visual元素仍然不會將它們的可見性值綁定到這些屬性。
在我的情況下,從xaml聲明引用控件的viewmodel屬性的正確方法是什麼?
謝謝。
謝謝。在我的情況下,它有點複雜,但我設法找出在輸出窗口中查看消息的問題。在我的情況下,TreeView控件具有它自己的DataContext,所以我必須使用初始的「複雜」相對綁定來獲取父級的屬性。至於StackPanel,它能夠引用正確的數據上下文,但該屬性作爲字段被刪除,因此無法找到它。 – 2011-04-24 14:52:11