0

私は XAML と C# の初心者ですが、以下のコードを持っていますが、これら 2 つのエラーを解決するために何を変更すればよいかわかりません。

Requested value 'PropertyChanged' was not found.

'Cautare.get' must declare a body because it is not marked abstract, extern, or partial

ここにXAMLがあります

<TextBox x:Name="textbutton1" Text="{Binding Cautare, UpdateSourceTrigger=PropertyChanged}"/>
<ListBox Grid.Row="1" x:Name="ListBox" Margin="0,0,-12,0" ItemsSource="{Binding Sursa.View}">

とコードビハインド

public partial class MainPage : PhoneApplicationPage
    {
        public CollectionViewSource Sursa { get; set; }
        public string Cautare { get;
                set
                {
                    if (!string.IsNullOrEmpty(Cautare))
                    Filtreaza();
                    Sursa.View.Refresh(); 
                }
        }
        private void Filtreaza()
        {
            Sursa.Filter -= new FilterEventHandler(Filtru);
            Sursa.Filter += new FilterEventHandler(Filtru);
        }
        private void Filtru(object sender, FilterEventArgs e)
        {
            var src = e.Item as Rind;
            if (src == null) e.Accepted = false;
            else if (src.Text != null && !src.Text.Contains(Cautare)) e.Accepted = false;
        }
        public ObservableCollection<Rind> Lista { get; set; }

        public MainPage()
        {
            Lista = new ObservableCollection<Rind>
                        {
                            new Rind { Text = "abcd"},
                            new Rind { Text = "asdf"},
                            new Rind { Text = "asdzx"},
                            new Rind { Text = "adffgd"},
                            new Rind { Text = "asdfgea"},
                        };
            InitializeComponent();
            Sursa = new CollectionViewSource();
            Sursa.Source = Lista;
            DataContext = this;
        }
        public class Rind
        {
            public string Text { get; set; }
        }
    }

CollectionViewSource とバインディングに関する他の同様の質問を既に読みました。

私の直感では、これはよくある問題だと言っていますが、2 時間のテストの後、私は脳のブロックされたループに入り、それをはっきりと「見る」ことができなくなりました。だから私は助けを求めています。ありがとうございました!

4

1 に答える 1

0

@acadeaさん、最初に基本を理解しました.プロパティが実際にどのように機能し、エラーを定義したかのようにそのセットを定義しています。このようにCautareを定義します..

 public string Cautare { get{ return SomeStringHere ;}
            set
            {  // you can set some value here
                if (!string.IsNullOrEmpty(Cautare))
                Filtreaza();
                Sursa.View.Refresh(); 
            }
    }

2番目のエラーは、コードにpropertychangedが実装されていないためですが、テキストブロックで使用しています..ここでの問題は、データバインディングの基本についても学習する必要があることです..問題を開始する方法を提供してくれることを願っています.. .

于 2013-07-22T07:08:41.700 に答える