You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF后台代码访问DataContext强转自定义类始终为null问题排查

错误原因

你XAML中给窗口设置DataContext的写法有误,最终窗口的DataContext实际是字符串值"myDataSource",并非你在资源中定义的myClass实例,因此执行as myClass类型转换时永远返回null。

你当前错误的DataContext配置代码:

<Window.DataContext>
    <Binding Source="myDataSource"/>
</Window.DataContext>

上述写法里直接给Source赋值字符串,WPF不会自动去资源字典中匹配Key为myDataSource的对象,只会把传入的字符串本身作为绑定源。

修复方法

二选一即可:

  • 方法1:直接用资源扩展给DataContext赋值,替换原有Binding写法
    <Window.DataContext>
        <StaticResource ResourceKey="myDataSource"/>
    </Window.DataContext>
    
  • 方法2:如果要保留Binding写法,需要显式通过StaticResource找到资源实例作为Binding源
    <Window.DataContext>
        <Binding Source="{StaticResource myDataSource}"/>
    </Window.DataContext>
    

修改完成后运行,点击按钮时dataContext变量会正确拿到myClass实例,可正常读取Text属性值,TextBox的双向绑定也会正常工作。

内容的提问来源于stack exchange,提问作者miguello

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 21:39:15