请教,WPF中如何使用数组绑定界面元素(多个Text)?
现状:
1、在界面中进行了绑定
<TextBox Margin="0,386,694,0" Name="AValveText1" Text="{Binding Path=ValAO[1]}" Style="{StaticResource TextBlockAValve}" Width="33" IsReadOnly="True" TextChanged="AValveText_TextChanged" />
2、绑定用的变量单独建了一个类
class WpfVarDr:INotifyPropertyChanged
    {
        private int[] valAO = new int[10] { 20, 30, 0, 0, 0, 0, 0, 0, 0, 0 }; 
        public int[] ValAO
        {
            set
            {
                valAO = value;
                NotifyPropertyChanged("valAO");
            }
            get { return valAO; }
        }        public event PropertyChangedEventHandler PropertyChanged;        private void NotifyPropertyChanged(string propertyName)
        {
            if (propertyName != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
   }
3、问题:实时改变变量时,界面(text)不能做出响应。

解决方案 »

  1.   

     应该是你的内容通知没传上去 你的内容没有NotifyPropertyChanged 
      

  2.   

    NotifyPropertyChanged 我写了啊,不过用中断看的时候,public int[] ValAO 都不会被触发。
    我觉得应该是数组的用法不对,如果这里全都用单一变量就没有问题。
      

  3.   

    试试使用System.Collections.ObjectModel.ObservableCollection<int>
      

  4.   

    NotifyPropertyChanged("valAO");属性名错了,改成NotifyPropertyChanged("ValAO");
      

  5.   

    用属性名字ValAO而不是变量名字valAO,要触发的是属性ValAO的set
    为了防止字符串写错,可以使用nameof
     NotifyPropertyChanged(nameof(ValAO));
      

  6.   

    数组不支持“变更通知”,而应该使用支持的动态数据集合ObservableCollection即可。
      

  7.   

    既然你用mvvm,就用的彻底一些,  事件什么的就不要用TextChanged="AValveText_TextChanged" 了,用command, 或者triger + command