毛员外 2017-04-22 04:26 采纳率: 0%
浏览 1547

WPF RelativeSource 疑问

问题:TextBlock的Text无法获取到MainViewModel实例的StepName值。
描述:我的理解是声明了Button中的Binding的Source为RelativeSource,AncestorType为Grid,那么Button就应该显示"Main View Step Name"字符串,但最终运行时Button未显示字符,为什么?也看了MSND中RelativeSource类里面的那个示例,我的理解是我这个代码和他那个代码没有本质区别啊

另外吐槽:CSDN这个文本编辑控件很有问题,Test Case很有问题啊
代码:

      <Grid DataContext="{x:Static local:MainViewModel.SingleInstance}">
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <Button DataContext="{Binding StepItemViewModel}"
                Content="{Binding Path = StepName,RelativeSource={RelativeSource AncestorType={x:Type Grid}}}">
        </Button>
    </Grid>

        public class MainViewModel:ViewModelBase
    {
        private static MainViewModel _singleInstance = null;
        public static MainViewModel SingleInstance
        {
            get
            {
                if (_singleInstance == null)
                {
                    _singleInstance = new MainViewModel();
                }
                return _singleInstance;
            }
        }

        private string _stepName = string.Empty;
        public string StepName
        {
            get { return _stepName; }
            set
            {
                _stepName = value;
                OnPropertyChanged("StepName");
            }
        }

        public StepItemViewModel StepItemViewModel { get; set; }
        public MainViewModel()
        {
            StepItemViewModel = new StepItemViewModel();
            StepName = "Main View Step Name";
        }
    }
  • 写回答

2条回答 默认 最新

  • ddc_net 2017-04-24 08:33
    关注


    这里把 DataContext改成 ItemsSource="{Binding 数据源}"试试看。问题应该出在这里吧

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘