我遇到了将文本块数据绑定到另一个类中的自定义道具的问题,我做错了什么?
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"/>
LanguageHelper类:
public class LanguageHelper
{
public String homepage_subheading;
public void changeLanguage()
{
if (true)
{
//english
homepage_subheading = "This is the top / sub Heading";
}
}
}
答案 0 :(得分:2)
您没有属性,只有公共字段,而数据绑定引擎仅适用于属性。
所以你需要改变你的课程:
public String homepage_subheading { get; set; }
如果您还希望通过更改属性通知用户界面,LanguageHelper
应实施INotifyPropertyChanged
interface并在修改属性时触发PropertyChange
事件。
答案 1 :(得分:0)
你应该声明一些依赖属性或使用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#
中的命名约定,所有属性都应首字母大写。