【问题标题】:Silverlight Binding Array Element to a TextblockSilverlight 将数组元素绑定到文本块
【发布时间】:2012-09-05 11:20:04
【问题描述】:
    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,无法更新。

【问题讨论】:

    标签: silverlight xaml data-binding


    【解决方案1】:
    NotifyPropertyChanged("G1[]");
    

    应该是

    NotifyPropertyChanged("G1");
    

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

    TextBlocks 不能用于输入文本。请改用文本框。

    绑定可能需要Mode=TwoWay

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

    【讨论】:

      【解决方案2】:

      哇……住手!使用 ObservableCollection&lt;int&gt; 而不是数组。 ObservableCollection 实现了 INotify。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-26
        • 2011-07-14
        • 2011-01-25
        • 2020-04-25
        • 1970-01-01
        • 2011-07-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多