gpt4 book ai didi

c# - 我的数据绑定(bind)有什么问题?

转载 作者:行者123 更新时间:2023-11-30 15:40:01 27 4
gpt4 key购买 nike

我已经从空白的全景项目中复制代码并进行了一些调整,但有些地方不对。

我已经设置了我的文本 block :

<TextBlock Grid.Column="0" Grid.Row="0" Text="{Binding ElementName=CurrentPlaceNow, Path=Temperature}" />

我的模型是这样的:

public class CurrentPlaceNowModel : INotifyPropertyChanged
{
#region PropertyChanged()
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (null != handler)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion

private string _temperature;
public string Temperature
{
get
{
return _temperature;
}
set
{
if (value != _temperature)
{
_temperature = value;
NotifyPropertyChanged("Temperature");
}
}
}
}

并定义在MainViewModel()中定义:

public CurrentPlaceNowModel CurrentPlaceNow = new CurrentPlaceNowModel();

最后,我为按钮点击添加了修饰符:

App.ViewModel.CurrentPlaceNow.Temperature = "foo";

现在,为什么文本框中没有显示任何内容?

最佳答案

您的绑定(bind)应该在 ViewModel 中导航。绑定(bind)到 ElementName 会尝试查看可视化树中的另一个对象。

将您的绑定(bind)更改为此:

<TextBlock 
Grid.Column="0"
Grid.Row="0"
Text="{Binding CurrentPlaceNow.Temperature}" />

验证您的 ViewModel 属性的格式是否正确:

private CurrentPlaceNowModel _CurrentPlaceNow = new CurrentPlaceNowModel();
public CurrentPlaceNowModel CurrentPlaceNow
{
get { return _CurrentPlaceNow; }
set
{
_CurrentPlaceNow = value;
NotifyPropertyChanged("CurrentPlaceNow");
}
}

只要您的 View 的 DataContext 是您的 MainViewModel,您就可以开始了。

关于c# - 我的数据绑定(bind)有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9690566/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com