我有一个自定义控件 LineChart
。 xaml.cs 中的代码:
public static readonly DependencyProperty StrokeProperty =
DependencyProperty.Register("StrokeProperty", typeof(Brush), typeof(LineChart), new PropertyMetadata(new SolidColorBrush(),
new PropertyChangedCallback(OnItemsChanged)));
public Brush Stroke
{
get { return (Brush)GetValue(StrokeProperty); }
set { SetValue(StrokeProperty, value); }
}
在 View 模型类中:
public Brush Abc
{
get { return new SolidColorBrush(new Color() {A = 123, B = 123, G = 23, R = 12 } ); }
}
在其他页面中:
<controls:LineChart Stroke="{Binding Abc}" />
在静态代码行 Stroke="Green"
下一切正常,但是当我使用 Binding
时,程序因错误而崩溃:
Windows.UI.Xaml.Markup.XamlParseException: The text associated with this error code could not be found.
Failed to assign to property CurrencyExchangeUniversal.App.Controls.LineChart.Stroke'. [Line: 102 Position: 41] at Windows.UI.Xaml.Application.LoadComponent(Object component, Uri resourceLocator, ComponentResourceLocation componentResourceLocation) at CurrencyExchangeUniversal.App.View.NationalBankPage.InitializeComponent() at CurrencyExchangeUniversal.App.View.NationalBankPage..ctor()
最佳答案
您在 DependencyProperty.Register
调用中犯了一个错误。第一个参数值应该是 "Stroke"
,而不是 "StrokeProperty"
:
public static readonly DependencyProperty StrokeProperty =
DependencyProperty.Register("Stroke", typeof(Brush), typeof(LineChart), new PropertyMetadata(new SolidColorBrush(),
new PropertyChangedCallback(OnItemsChanged)));
关于c# - UWP 无法分配给自定义控件中的属性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36259613/