我有一個使用MVVM的應用程序。主窗口上有幾個項目綁定到該窗口的ViewModel。當我運行它時,一切正常。但是,當我將一個用戶控件添加到主窗口並嘗試綁定到其某個依賴項對象時,它會引發異常(「對象引用未設置爲對象的實例」)。異常窗口只是彈出在屏幕上,並沒有鏈接到代碼中的任何特定位置。並且異常中的任何其他信息都沒有幫助。WPF MVVM用戶控件綁定問題
我已經盡力追查這件事了,但我沒有任何運氣。在窗口的構造函數中,我檢查並驗證了它試圖綁定的項目存在並且是一個對象(int [])。我也手動設置了構造函數中的屬性有問題。 這裏有一些代碼片段,如果任何人可以注意到任何東西。
這裏就是我用的是用戶控制和嘗試綁定到「視圖」特性
<local:Histogram Grid.Row="2" Grid.ColumnSpan="2"
View="{Binding Path=HistogramData}"
Foreground="{DynamicResource FontColor}"
BucketStroke="{DynamicResource BucketStrokeBrush}"
BucketFill="{DynamicResource BucketFillBrush}"
SelectedBrush="{DynamicResource FamilyEditListViewSelectedBrush}"
DisabledForegroundBrush="{DynamicResource DisabledForegroundBrush}"
AxisBrush="{DynamicResource AxisBrush}"
MaxHeight="130" />
這裏是,我試圖綁定到視圖模型中場:
public int[] HistogramData
{
get
{
return histogramData;
}
set
{
if (value != histogramData)
{
histogramData = value;
RaisePropertyChanged("HistogramData");
}
}
}
並在視圖模型的構造我實例化對象
histogramData = new int[256];
最後她e是在用戶控制
public static readonly DependencyProperty ViewProperty =
DependencyProperty.Register("View",
typeof(int[]),
typeof(Histogram),
new FrameworkPropertyMetadata(null,
FrameworkPropertyMetadataOptions.AffectsRender,
new PropertyChangedCallback(ViewProperty_Changed)));
public int[] View
{
get { return (int[])GetValue(ViewProperty); }
set { SetValue(ViewProperty, value); }
}
我不知道該視圖屬性,如果這是足夠的信息來解決任何問題,所以如果更多的代碼是REQ請讓我知道。如果有人傾向於看這個項目,我也可以編制項目。提前致謝。
我試過了(看我上面的最後一條評論),但它沒有工作:( – 2009-11-17 12:31:26
對不起,我不確定你的意思是什麼意思。你試過用新的int [256]替換你最後一段代碼中的null嗎? – 2009-11-17 13:59:54
我想你想發送整個項目我會看看雖然我對wpf很新,所以我可能也不會工作 – 2009-11-17 14:04:57