【发布时间】:2011-08-12 00:06:32
【问题描述】:
我在 WPF 中为数据网格使用模板选择器。
我有这个代码:
<l:ProblemTemplateSelector x:Key="problemTemplateSelector">
<l:ProblemTemplateSelector.ArithmeticTemplate>
<DataTemplate>
<Grid Background="LightBlue">
<l:ArithmeticUserControl Problem="{Binding ElementName=this}" />
</Grid>
</DataTemplate>
</l:ProblemTemplateSelector.ArithmeticTemplate>
</l:ProblemTemplateSelector>
在用户控件中,我需要在问题属性中设置所有元素,但我不知道我做错了什么。谢谢。
更新 1:
如果您需要详细信息,我会更具体,我有一个课程练习,用户控件在哪里:
public class Exercise : UserControl
{
public static readonly DependencyProperty ProblemProperty = DependencyProperty.Register(
"Problem", typeof(Problem), typeof(Exercise), new PropertyMetadata(null, ));
public virtual Problem Problem
{
get
{
return (Problem)GetValue(ProblemProperty);
}
set
{
SetValue(ProblemProperty, value);
}
}
}
我还有另一个派生自练习的类。
public partial class ArithmeticUserControl : Exercise
{
public ArithmeticUserControl()
{
InitializeComponent();
}
public override Problem Problem
{
get
{
return base.Problem;
}
set
{
base.Problem = value;
Arithmetic p = (Arithmetic)value;
Number1 = p.Number1;
Number2 = p.Number2;
Operator = p.Operation;
}
}
}
【问题讨论】:
-
试试 ="{Binding TemplatedParent}",我说“所有元素”是模板化的元素对吗?
-
可以,但是不行
-
好的,您能否详细说明一下“所有元素”、控件本身或绑定到 ListBoxItem 的数据项时的意思?
标签: c# wpf xaml data-binding