繁体   English   中英

Windows Phone App文本框绑定不起作用

[英]Windows Phone App textbox binding don't work

我正在研究我的第一个Windows Phone 7应用程序,并且存在文本框上的绑定不起作用的问题,我真的不知道为什么。 其他绑定工作完美。

如果更改日期,则还应更改文本框中的文本。

XAML:

<TextBlock x:Name="ZodiacText" Text="{Binding Path=ZodiacString, Mode=OneWay}" FontSize="20" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Center"  VerticalAlignment="Center" Foreground="White" />

而背后的代码:

public DateTime Date
{
    get { return date; }
    set
    {
        if (value != this.date)
        {
            this.date = value;
            setActualDate(this.date);

            update();

            if (this.PropertyChanged != null)
            {
                this.PropertyChanged(this,
                new PropertyChangedEventArgs("NewDate"));
            }
        }
    }
}
public void update()
{
    zodiac = MoonCalculus.getZodiac();
   ...
    ZodiacString = zodiac;
}
public String ZodiacString
{
    get { return zodiacString; }
    set
    {
        if (zodiacString != value)
        {
            zodiacString = AppResources.ResourceManager.GetString(value);
        }
    }
}
  1. 设置ZodiacString时,您不会提升PropertyChanged
  2. 你有Mode=OneWay ,这是默认的。 你想要Mode=TwoWay

尝试摆脱update() ,并摆脱ZodiacString的二传手。

有两个原因 - 它不需要,而在getter中,做更新的工作。 这也比您当前的实现要好-该值用作AppResources.ResourceManager.GetString(value);的参数AppResources.ResourceManager.GetString(value); 是'代码味道',因为它没有明显表达它的真实意图。 (用作参数而不是将ZodiacString设置为它的值)

public DateTime Date
{
    get { return date; }
    set
    {
        if (value != this.date)
        {
            this.date = value;
            setActualDate(this.date);
RaisePropertyChanged("Date");
RaisePropertyChanged("NewDate");
RaisePropertyChanged("ZodiacString");

        }
    }
}


private void RaisePropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
            {
                this.PropertyChanged(this,
                new PropertyChangedEventArgs(propertyName));
            }
}

public String ZodiacString
{
    get { 
zodiac = MoonCalculus.getZodiac();
   ...
return zodiac; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM