我有这个型号:
class Person
{
public static int Counter;
public string _firstName;
public string _lastName;
public string FirstName
{
get {return _firstname; }
set
{
_fileName = value;
}
}
public AddPerson(Person person)
{
Counter++;
}
}
现在我尝试将我的计数器property
绑定到简单的TextBlock
:
<TextBlock Name="tbStatusBar" Text="{Binding Person,Source={StaticResource Person.Counter}}" />
并且出现了这个错误:追索者Person.Counter无法解决。
答案 0 :(得分:-1)
绑定需要属性而不是字段。将Counter
更改为属性并直接绑定到该属性,例如
Text="{Binding Counter}"
在Xaml中绑定需要视觉或逻辑树上的项目实际绑定。见Trees in WPF。静态属性Counter
存在但不在绑定可以找到它的位置。
因此,要么在页面的资源上创建一个Person对象(您可能需要将Person类设置为public,以便命名空间解析可以找到它),例如:
<local:Person x:Key="myPerson"/>
并绑定到它,如
<TextBlock Text="{Binding Count}"
DataContext="{Binding Source={StaticResource myPerson}}">
或者,如果TextBlock的数据上下文可以访问其中一个,例如一个名为'Persons'的有效(非空)Person对象列表(对于此示例),如下所示:
<TextBlock DataContext="{Binding Persons[0]}" Text="{Binding Counter}"/>