我有两个类和一个用户控件。
class pvalue
{
public string value;
public bool selected;
public pvalue(string v, bool s)
{
value = v;
selected = s;
}
}
class param
{
public string name { get; set; }
public string prefix { get; set; }
public IList<pvalue> values { get; set; }
public param(string _name, string _prefix, IList<pvalue> _values)
{
name = _name;
prefix = _prefix;
values = _values;
}
}
<UserControl DataContext="{Binding param}" >
<Grid>...
<ItemsControl x:Name="itemctl" ItemsSource="{Binding Path=values}">
...
<ItemsControl.ItemTemplate>
<DataTemplate>
<ToggleButton IsChecked="{Binding Path=selected}">
<TextBlock Text="{Binding Path=value}" />
</ToggleButton>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</UserControl>
我的目的是在应用程序中创建类,并将其设置为usercontrol的datacontext。但我对WPF很新,这有点过头了。数据绑定无效 - “'对象'''pvalue'上找不到BindingExpression路径错误:'value'属性。”
我可以帮助理清用户控件的数据绑定吗?非常感谢。
答案 0 :(得分:0)
这里似乎有一些问题:
INotifyPropertyChanged
答案 1 :(得分:0)
在UserControl定义中包含您的解决方案命名空间,然后将该类作为资源包含在这样的资源中
<UserControl.Resources>
<param:SolutionName x:key="Param" />
</UserControl.Resources>
然后修改您的代码,如下所示
<UserControl DataContext="{Binding param}" >
<Grid>...
<ItemsControl x:Name="itemctl" ItemsSource="{Binding Source="{StaticResource Param}">
...
<ItemsControl.ItemTemplate>
<DataTemplate>
<ToggleButton IsChecked="{Binding Path=selected}">
<TextBlock Text="{Binding Path=value}" />
</ToggleButton>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</UserControl>
希望有所帮助