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

WPF DataTemplate内Pruefwert绑定值无法显示问题求助

问题分析与解决

你的问题核心在于ContentControl的Content属性未设置,导致TextBoxTemplate的绑定上下文异常:

  • DataGridTextColumn的绑定直接作用于行的DataContext(即你的数据实体),所以能正常读取Pruefwert;
  • 而ContentControl应用ContentTemplate时,模板内元素的默认绑定上下文是ContentControl.Content属性的值,你未给该属性赋值,绑定自然找不到Pruefwert。

解决方案(两种可选)

方案1:给ContentControl设置Content绑定(推荐)

修改Actions列的ContentControl部分,添加Content="{Binding}",让模板继承行的DataContext:

<ContentControl Content="{Binding}">
    <ContentControl.Style>
        <Style TargetType="ContentControl">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Type}" Value="button">
                    <Setter Property="ContentTemplate" Value="{StaticResource ButtonTemplate}" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Type}" Value="text">
                    <Setter Property="ContentTemplate" Value="{StaticResource TextBoxTemplate}" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ContentControl.Style>
</ContentControl>

方案2:在模板内使用RelativeSource绑定

如果不想修改ContentControl,也可以直接在TextBoxTemplate的TextBox绑定中指定绑定源为ContentControl的DataContext:

<TextBox Text="{Binding DataContext.Pruefwert, RelativeSource={RelativeSource AncestorType=ContentControl}, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" 
         Background="White" HorizontalAlignment="Stretch" Grid.Column="0" Grid.ColumnSpan="2" TextChanged="TextBox_TextChanged"/>

验证说明

两种方案都能让TextBox正确读取Pruefwert的值,方案1更简洁,符合WPF绑定的常规逻辑,建议优先使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:22:04