Silverlight绑定数组元素到文本块

时间:2012-09-05 11:20:05

标签: silverlight xaml data-binding

    private int[] g1 = new int[9];

    public int[] G1 
    { 
        get { return g1; }
        set { NotifyPropertyChanged("G1[]"); }
    }



    public event PropertyChangedEventHandler PropertyChanged;

    private void NotifyPropertyChanged(string propName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propName));
        }
    }



    <TextBlock x:Name="R1G1" Text="{Binding G1[0]}" HorizontalAlignment="Left" Margin="0,0,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="80" Height="80"/>

G1在方法中用1到9的整数填充。

问题: 文本块的文本设置为0,无法更新。

2 个答案:

答案 0 :(得分:1)

NotifyPropertyChanged("G1[]");

应该是

NotifyPropertyChanged("G1");

您确定数组包含值1到9吗?它没有在代码中显示。

TextBlocks不能用于输入文本。改为使用TextBox。

绑定可能需要Mode=TwoWay

最后(此问题不需要):数组不支持发送对数组的更改通知(添加,删除,移动元素)您可以使用ObservableCollection。

答案 1 :(得分:0)

哇...停!使用ObservableCollection<int>而不是数组。 ObservableCollection实现了INotify。