0
    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 is filled with integers from 1 to 9 in a method.

Problem: Text of the textblock is set to 0 and they can not be updated.

4

2 に答える 2

1
NotifyPropertyChanged("G1[]");

する必要があります

NotifyPropertyChanged("G1");

配列に 1 ~ 9 の値が含まれていますか? コードには表示されません。

TextBlocks を使用してテキストを入力することはできません。代わりに TextBox を使用してください。

バインディングにはMode=TwoWay

最後に (この問題には必要ありません): 配列は、配列への変更 (要素の追加、削除、移動) の通知の送信をサポートしていません。そのために ObservableCollection を使用できます。

于 2012-09-05T11:27:40.490 に答える
0

うわぁ…やめて!ObservableCollection<int>配列の代わりに を使用します。ObservableCollection は INotify を実装します。

于 2012-09-05T19:53:46.150 に答える