0

を更新しないReactiveObjectクラスGroupedIssueTypeSearchFilterの名前:ReactiveUI BindToは、私が持っているReactiveList

public class GroupedIssueTypeSearchFilter : ReactiveObject 
{ 
    public int CategoryID { get; set; } 
    public string CategoryTitle { get; set; } 

    int selectionCode; 
    public int SelectionCode 
    { 
     get { return selectionCode; } 
     set { this.RaiseAndSetIfChanged(ref selectionCode, value); } 
    } 

    public ReactiveList<IssueTypeSearchFilter> IssueTypeFilterList { get; set; } 

    public GroupedIssueTypeSearchFilter(int catID, string catTitle, List<IssueTypeSearchFilter> issueTypeList) 
    { 
     this.CategoryID = catID; 
     this.CategoryTitle = catTitle; 
     this.IssueTypeFilterList = new ReactiveList<IssueTypeSearchFilter>(issueTypeList); 
    } 
} 

次にIssueTypeFilterTableViewDelegateクラスでは、その特性の一つはGroupedIssueTypesFilterです:私もViewControllerとを持っている

public ReactiveList<GroupedIssueTypeSearchFilter> GroupedIssueTypesFilter { get; set; } 

そのViewModel。私は、そのクラスにビューモデルのプロパティのいずれかをバインドするためにBindToを使用:

IssueTypeFilterTableViewDelegate tvd = new IssueTypeFilterTableViewDelegate(); 
this.WhenAnyValue(vm => vm.ViewModel.GroupedStandardIssueTypesTV) 
    .BindTo(this, x => x.tvd.GroupedIssueTypesFilter); 

GroupedStandardIssueTypesTVタイプはReactiveList<GroupedIssueTypeSearchFilter>です。

その後、ViewModel内のいくつかの操作で、GroupedStandardIssueTypesTV.IssueTypeFilterListを変化させます。

ただし、GroupedIssueTypesFilter.IssueTypeFilterListの値はは変更されていませんです。私は、ビューを閉じて、それを開き、次に値が更新される必要があります。

の変更方法はGroupedStandardIssueTypesTVの変更に従いますか?

答えて

0

私はあなたの問題はあなたはそれが好き宣言あなたのReactiveListの変更を上げていないことだと思う:

public ReactiveList<IssueTypeSearchFilter> IssueTypeFilterList { get; set; } 

はこれを試してみてください:

ReactiveList<IssueTypeSearchFilter> issueTypeFilterList 
public ReactiveList<IssueTypeSearchFilter> IssueTypeFilterList 
{ 
    get { return issueTypeFilterList; }; 
    set { this.RaiseAndSetIfChanged(ref issueTypeFilterList, value); }; 
} 

あなたがへの変更を伝えることがwon`t RaiseAndSetIfChangedなしでコレクション内のビュー

またReactiveListは以下のように公開される観測を購読することができます:ここ

ItemsAdded 
ItemsRemoved 
ItemsMoved 
Changed 
etc 

さらに詳しい情報:https://docs.reactiveui.net/en/user-guide/lists/index.html

+0

私はすでに前にこれを試してみて、それが働いていません。私がテーブルをリロードするたびに、リストは更新されません。 – currarpickt

3

は完全@ramonesteban78 answerに同意します。

しかし、あなたは別の方法でReactiveListをClearとAdd/AddRangeメソッドで補充することができます。このよう

public GroupedIssueTypeSearchFilter(int catID, string catTitle, List<IssueTypeSearchFilter> issueTypeList) 
{ 
    this.CategoryID = catID; 
    this.CategoryTitle = catTitle; 
    this.IssueTypeFilterList.Clear(); 
    this.IssueTypeFilterList.AddRange(issueTypeList); 
} 

は、ここに「抑止通知」について読んで忘れてはいけない:https://docs.reactiveui.net/en/user-guide/lists/index.html