C# 数据绑定到类的问题?
我在将文本块数据绑定到另一个类中的自定义道具时遇到问题,我做错了什么C# 数据绑定到类的问题?,c#,xaml,data-binding,windows-phone,C#,Xaml,Data Binding,Windows Phone,我在将文本块数据绑定到另一个类中的自定义道具时遇到问题,我做错了什么 mainpage: public partial class MainPage : PhoneApplicationPage { // Constructor public MainPage() { InitializeComponent(); InitializeLanguage(); } private void InitializeLang
mainpage:
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
InitializeLanguage();
}
private void InitializeLanguage()
{
LanguageHelper lh = new LanguageHelper();
// this.TitlePanel.DataContext = lh;
txtTitle.DataContext = lh;
}
}
数据绑定:
<TextBlock x:Name="txtTitle"
Text="{Binding homepage_subheading}"
Style="{StaticResource PhoneTextNormalStyle}"
Foreground="White"
Margin="12,0"/>
}您没有属性,只有公共字段,数据绑定引擎只对属性起作用 因此,您需要更改您的课程:
public String homepage_subheading { get; set; }
如果您还想用属性更改通知UI,则您的
LanguageHelper
应该在您修改属性时实现并触发PropertyChange
事件。您应该声明一些依赖性属性或使用INotifyPropertyChanged
,我想使用依赖性属性:
public class LanguageHelper : DependencyObject {
public static DependencyProperty Hompage_subheadingProperty =
DependencyProperty.Register("Homepage_subheading", typeof(string), typeof(LanguageHelper));
public String Homepage_subheading {
get { return (string) GetValue(Homepage_subheadingProperty);}
set { SetValue(Homepage_subheadingProperty, value);}
}
}
请注意,关于
C#
中的命名约定,所有属性的首字母都应大写。将字段更改为属性是否解决了问题?或者它仍然不起作用?很抱歉,几分钟后才能接受答案,谢谢你的帮助
public class LanguageHelper : DependencyObject {
public static DependencyProperty Hompage_subheadingProperty =
DependencyProperty.Register("Homepage_subheading", typeof(string), typeof(LanguageHelper));
public String Homepage_subheading {
get { return (string) GetValue(Homepage_subheadingProperty);}
set { SetValue(Homepage_subheadingProperty, value);}
}
}