WPF画布绑定

3

我对WPF还比较新,所以这可能是个简单的问题。我有一个继承自Canvas的类,让我们称之为MyCanvas。另外我有一个名为MyClass的类,它具有类型为MyCanvas的属性。在XAML中,我构建了一个TabControl,因此每个TabItem都绑定到一个MyClass对象。现在,在每个选项卡的内容中,我想要显示MyObject.MyCanvas。

我该如何做?

<TabControl.ContentTemplate>
    <DataTemplate>
        <Grid>
            <myCanvas:MyCanvas  Focusable="true" Margin="10" >
                <Binding Path="Canvas"></Binding>
            </myCanvas:MyCanvas>
        </Grid>
    </DataTemplate>
</TabControl.ContentTemplate>
2个回答

5
你应该使用 ContentPresenter。
<TabControl.ContentTemplate> 
    <DataTemplate> 
        <Grid> 
            <ContentPresenter Content="{Binding MyCanvas}" Focusable="true" Margin="10" />
        </Grid> 
    </DataTemplate> 
</TabControl.ContentTemplate>

2

尝试使用ContentPresenter并将内容绑定到您想要的属性。如果该属性是Canvas的子代,则应该只显示该内容。如果属性属于其他类型,则会尝试使用DataTemplate来呈现它。


感谢您提供正确的答案,但我选择将bniwredyc的回答标记为解决方案,因为它是第一个。 - morsanu
1
而且更完整。别担心……我一看到他的答案就点赞了。 :) - Ben Von Handorf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接