我终于设法用我自己的Panel创建了一个GridView。布局很好。现在我希望能够将我的ViewModel的值绑定到我自己的Panel。你能帮我这么做吗?目前我正在更改页面后面代码中的值,我不喜欢...
目前我正在尝试执行x:绑定并收到错误:"对象引用未设置为对象的实例。" 我不知道"正常"绑定会有所帮助。我确实尝试过,但没有成功。
自定义面板
NSKeyedUnarchiver
XAML:
public class PRGD010_GridViewPanel : Panel
{
public int NumberRowsOrColumns
{
get { return (int)GetValue(NumberRowsOrColumnsProperty); }
set { SetValue(NumberRowsOrColumnsProperty, value < 1 ? 0 : value); }
}
public static readonly DependencyProperty NumberRowsOrColumnsProperty = DependencyProperty.Register("NumberRowsOrColumns", typeof(int), typeof(PRGD010_GridViewPanel), new PropertyMetadata(1d, OnNumberRowsOrColumnsPropertyChanged));
private static void OnNumberRowsOrColumnsPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e)
{
(source as PRGD010_GridViewPanel).InvalidateMeasure();
}
public int Offset
{
get { return (int)GetValue(StartPositionProperty); }
set { SetValue(StartPositionProperty, value >= this.NumberRowsOrColumns ? this.NumberRowsOrColumns - 1 : value); }
}
public static readonly DependencyProperty StartPositionProperty = DependencyProperty.Register("Offset", typeof(int), typeof(PRGD010_GridViewPanel), new PropertyMetadata(0d, OnStartPositionPropertyChanged));
private static void OnStartPositionPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e)
{
(source as PRGD010_GridViewPanel).InvalidateMeasure();
}
public PRGD010_GridViewPanel()
{
}
}
答案 0 :(得分:1)
当你使用x:Bind时,绑定的上下文是页面或用户控件本身(而不是普通绑定使用的DataContext),所以在后面的代码中你需要main_viewmodel,View Model和ref_cat_id的属性。如果其中一个或多个为空或不存在,则可以解释您正在获取的错误