【发布时间】:2022-01-25 08:08:07
【问题描述】:
我尝试将字符串绑定到 TextBlock Text 属性,但值未显示在我的视图中。
xaml:
<TextBlock Margin="10,0" DataContext="{Binding UpgradeViewModel, Source={StaticResource Locator}}">
<Run Text="Other features: " FontWeight="Bold"/>
<Run Text="{Binding UpgradeViewModel.AdditionalSelectedLevelData, Source={StaticResource Locator},
Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</TextBlock>
查看模型:
private string additionalSelectedLevelData;
public string AdditionalSelectedLevelData
{
get => additionalSelectedLevelData;
set
{
Set(ref additionalSelectedLevelData, value);
Debug.WriteLine(value);
}
}
属性更改值,我使用 Debug.WriteLine(value); 进行检查
我已经实现了 INotifyPropertyChanged(Set(ref additionalSelectedLevelData, value);),将绑定模式设置为 TwoWay,设置 UpdateSourceTrigger=PropertyChanged。
我尝试添加 TextBox 并绑定到他的 Text 属性相同的字符串值,并获得相同的结果,但是当我在 TextBlock 和 TextBox 上显示文本框字符串时。我有任何想法。绑定路径正确 100%。
【问题讨论】:
-
您已经在
TextBlock级别设置了DataContext,无需在Run重复相同的操作。所以,只有属性名称就足够了。 -
请说明你如何初始化
additionalSelectedLevelData。 -
@JesseGood 我为这个字段添加了初始化,值显示了,但没有改变。
-
@emoacht 我试试这个,得到一些结果
-
请记住下次显示更多上下文。单独发布代码 sn-ps 永远无法帮助对您的代码不熟悉的人通过审查来“调试”它。始终发布重现错误的最小可行代码示例。创建此示例也有助于您自己识别问题。
标签: c# .net wpf data-binding