我正在构建一个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中的属性吗?
我浏览了论坛,但未能找到任何涵盖此内容的内容。
非常感谢。
答案 0 :(得分:1)
TextBlock不是UserControl,如果要在其中放置TextBlock,则需要将显示控件的类型更改为TextBlock。
private TextBlock displayControl;
public TextBlock DisplayControl {
get { return displayControl; }
set { displayControl = value; }
}