Я хочу сделать то же самое, что и в предыдущем вопросе с 2011 года: Should binding to Path.Data property work?, но моя проблема в том, что я получил любую другую ошибку, и я не понимаю, ведьма. Я ищу реле, так как через просмотреть дни, что я делаю неправильно, но я должен быть слепым ...Связывание с Path.Data Свойство в UserControl
Generic.xaml:
<Style TargetType="{x:Type local:CustomControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomControl}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Path Data="{Binding GeometryData}" x:Name="CurveGraph" Stroke = "Black" StrokeThickness = "2" Grid.RowSpan="4"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
CustomControl.cs:
public class CustomControl : Control
{
static CustomControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomControl), new FrameworkPropertyMetadata(typeof(CustomControl)));
CustomControl tmp = new CustomControl();
tmp.Build();
}
public GeometryGroup Build()
{
var curve = new GeometryGroup();
curve.Children.Add(new LineGeometry(new Point(0, 0), new Point(20, 20)));
curve.Children.Add(new LineGeometry(new Point(0, 20), new Point(20, 0)));
new CustomControl().GeometryData = curve;
return curve;
}
private GeometryGroup GeometryData
{
get { return (GeometryGroup)GetValue(GeometryDataProperty); }
set { SetValue(GeometryDataProperty, value); }
public static readonly DependencyProperty GeometryDataProperty = DependencyProperty.Register("GeometryData", typeof(GeometryGroup), typeof(CustomControl), new UIPropertyMetadata(new GeometryGroup()));
}
MainWindow .xaml:
<Grid>
<ctl:CustomControl x:Name="Curve"/>
</Grid>
Всё. Главный Window.xaml.cs получил свой конструктор. Но я действительно не знаю, в чем проблема. :(
временный экземпляр был только один из тысячи пытаются заставить его работать. Но я также попытался вызвать функцию построения из MainWindow.xaml.cs, и в этот момент она вызывается из тех же мгновений, не так ли? – Teroman
См. Мое редактирование. Теперь сборка представляет собой метод открытого экземпляра, который можно вызвать в экземпляре CustomControl, например. в коде MainWindow. Таким образом, вы, вероятно, можете сохранить конструктор экземпляра. – Clemens