通过XAML在自己的标记

时间:2015-07-07 18:15:13

标签: c# wpf

我正在构建一个WPF控件,它将在显示模式下显示一个组件,然后在单击时,将切换到编辑模式下的组件。

两个组件将被绑定,以便编辑值反映在显示组件上(通常是TextBlock)。

我想要的XAML语法如下。

     <ListView.View>
            <GridView>
                <GridViewColumn Width="140" Header="Rating Year">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <Controls:EditableControlContainer>
                                <Controls:EditableControlContainer.DisplayControl>
                                    <TextBlock Text="{Binding ValueString}" />
                                </Controls:EditableControlContainer.DisplayControl>
                            </Controls:EditableControlContainer>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
        </ListView.View>

背后的代码

 public partial class EditableControlContainer : UserControl
 {
    private UserControl displayControl;

    public UserControl DisplayControl {
        get { return displayControl; }
        set { displayControl = value; }
    }

    private UserControl editControl;

    public UserControl EditControl {
        get { return editControl; }
        set { editControl = value; }
    }


    public EditableControlContainer() {
        InitializeComponent();
    }
}

我得到的错误是无法识别或访问EditableControlContainer.DisplayControl。

我也不确定我是否可以包含一个对象或类型UserControl(最好,我想使用一个接口,虽然我不确定哪一个)。

任何人都可以解释或提供资源链接,演示如何在XAML中配置UserControl中的属性吗?

我浏览了论坛,但未能找到任何涵盖此内容的内容。

非常感谢。

1 个答案:

答案 0 :(得分:1)

TextBlock不是UserControl,如果要在其中放置TextBlock,则需要将显示控件的类型更改为TextBlock。

private TextBlock displayControl;

public TextBlock DisplayControl {
    get { return displayControl; }
    set { displayControl = value; }
}