Wpf MVVM模式:BindingExpression路径错误:';数据';在'上找不到属性;对象';
我正在尝试(第一次)使用MVVM模式来制作WPF图表,但我无法理解这个问题!为什么调试时我的主窗口上什么都没有! 在我的输出窗口中,我收到以下错误消息: System.Windows.Data错误:40:BindingExpression路径错误:在>'object''字符串(HashCode=-354185577)上未找到“Data”属性。BindingExpression:路径=数据;DataItem='String' (HashCode=-354185577);目标元素为“ColumnSeries”(名称=“”);目标属性为>'ItemsSource'(类型为'IEnumerable') 这是myProject.View中的mainWindow.xamlWpf MVVM模式:BindingExpression路径错误:';数据';在'上找不到属性;对象';,wpf,binding,mvvm,charts,Wpf,Binding,Mvvm,Charts,我正在尝试(第一次)使用MVVM模式来制作WPF图表,但我无法理解这个问题!为什么调试时我的主窗口上什么都没有! 在我的输出窗口中,我收到以下错误消息: System.Windows.Data错误:40:BindingExpression路径错误:在>'object''字符串(HashCode=-354185577)上未找到“Data”属性。BindingExpression:路径=数据;DataItem='String' (HashCode=-354185577);目标元素为“ColumnSe
<Window x:Class="Chart.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase"
Title="MainWindow" Height="350" Width="525"
DataContext="Test">
<Grid>
<chartingToolkit:Chart
Height="262"
HorizontalAlignment="Left"
Margin="33,0,0,620"
Name="columnChart"
Title="ColumnSeriesDemo"
VerticalAlignment="Bottom"
Width="360">
<chartingToolkit:ColumnSeries
IndependentValueBinding="{Binding Path=DateTest, diag:PresentationTraceSources.TraceLevel=High}"
DependentValueBinding="{Binding Path=VolumeTest ,diag:PresentationTraceSources.TraceLevel=High}"
ItemsSource="{Binding Path=Data, Mode=TwoWay, diag:PresentationTraceSources.TraceLevel=High}" />
</chartingToolkit:Chart>
</Grid>
任何帮助都将不胜感激:“(删除该行
DataContext="Test"
从XAML的顶部
您正在代码中设置DataContext,但在XAML中再次将其设置为字符串。我知道这个答复已经非常晚了,但我相信它会对那里的人有所帮助 我花了几个小时,因为我遇到了这样的错误,这种错误通常发生在像我这样的初学者身上: 错误显示: BindingExpression路径错误:在“对象”上找不到属性 如果我从一开始就全神贯注,这确实是一个明确的信息 在我的例子中,我发现我在没有属性的情况下定义了feld 例如:
public string Name = "textss";
我认为XAML处理器需要这样一个完全实现的属性:
public string _name = "textss";
public string Name{
get{
return _name;
}
set{
_name = value ;
}
}
或者至少如下所示
public string Name {get; set;}
所以这个问题的答案是Date属性有一些错误!!
我认为错误在于调用propChanged,并用小写字母“data”而不是“data”传递名称
公共ObservableCollection DataTest=新ObservableCollection();
公共可观测收集数据
{
获取{return DataTest;}
设置{DataTest=value;
已更改(“数据”);
}
}
你完全正确。我的问题也完全一样——我只是没有意识到它应该是属性而不仅仅是字段。谢谢。
public string Name = "textss";
public string _name = "textss";
public string Name{
get{
return _name;
}
set{
_name = value ;
}
}
public string Name {get; set;}
public ObservableCollection<DataItem> DataTest = new ObservableCollection<DataItem>();
public ObservableCollection<DataItem> Data
{
get { return DataTest;}
set { DataTest= value;
propChanged("data");
}
}