{"action":"created","issue":{"url":"https://api.github.com/repos/reactiveui/ReactiveUI/issues/1250","repository_url":"https://api.github.com/repos/reactiveui/ReactiveUI","labels_url":"https://api.github.com/repos/reactiveui/ReactiveUI/issues/1250/labels{/name}","comments_url":"https://api.github.com/repos/reactiveui/ReactiveUI/issues/1250/comments","events_url":"https://api.github.com/repos/reactiveui/ReactiveUI/issues/1250/events","html_url":"https://github.com/reactiveui/ReactiveUI/pull/1250","id":203897410,"number":1250,"title":"Allow to define which members WireUpControls finds","user":{"login":"Qonstrukt","id":1132953,"avatar_url":"https://avatars.githubusercontent.com/u/1132953?v=3","gravatar_id":"","url":"https://api.github.com/users/Qonstrukt","html_url":"https://github.com/Qonstrukt","followers_url":"https://api.github.com/users/Qonstrukt/followers","following_url":"https://api.github.com/users/Qonstrukt/following{/other_user}","gists_url":"https://api.github.com/users/Qonstrukt/gists{/gist_id}","starred_url":"https://api.github.com/users/Qonstrukt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Qonstrukt/subscriptions","organizations_url":"https://api.github.com/users/Qonstrukt/orgs","repos_url":"https://api.github.com/users/Qonstrukt/repos","events_url":"https://api.github.com/users/Qonstrukt/events{/privacy}","received_events_url":"https://api.github.com/users/Qonstrukt/received_events","type":"User","site_admin":false},"labels":[{"id":386832176,"url":"https://api.github.com/repos/reactiveui/ReactiveUI/labels/in%20progress","name":"in progress","color":"ededed","default":false},{"id":302231956,"url":"https://api.github.com/repos/reactiveui/ReactiveUI/labels/xamarin-android","name":"xamarin-android","color":"fef2c0","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-01-29T21:22:19Z","updated_at":"2017-01-30T07:32:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/reactiveui/ReactiveUI/pulls/1250","html_url":"https://github.com/reactiveui/ReactiveUI/pull/1250","diff_url":"https://github.com/reactiveui/ReactiveUI/pull/1250.diff","patch_url":"https://github.com/reactiveui/ReactiveUI/pull/1250.patch"},"body":"**What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)**\r\nThis is an improvement upon `WireUpControls` and #1217, but this time without introducing the problems from #1234, #1231 and #1227.\r\n\r\n**What is the current behavior? (You can also link to an open issue here)**\r\n`WireUpControls` doesn't allow you to specify how it'll find members currently. It'll always find all properties which are subclasses of View, which isn't always what you want. \r\n\r\nFor example, when you have a `Toolbar` property in your Fragment which you initialise dynamically in `OnViewCreated`, you cannot use `WireUpControls` anymore because it's unable to wire up the property with a view in your layout. This counts for the fragment itself or any subclasses thereof.\r\n\r\n\r\n**What is the new behavior (if this is a feature change)?**\r\nThis PR allows you to switch from just implicit resolving, to two additional ways to explicitly wire up properties to views in your layout, by using opt-in or opt-out.\r\n\r\nWhen using **implicit**, it'll default to the way `WireUpControls` has always worked.\r\n\r\nWhen using **explicit opt-in**, you should use the `WireUpResource` attribute on your properties to explicitly define you want it wired up.\r\n\r\nWhen using **explicit opt-out**, it introduces the behaviour of #1217 with the added bonus of opting out certain properties with the `IgnoreResource` attribute. \r\nThis is currently not very useful in activities and fragments, because it'll also introduce the problems with #1217, but it can certainly be handy in views for example.\r\n\r\n\r\n**Does this PR introduce a breaking change?**\r\nIn contrary to #1217 it shouldn't. Unfortunately there doesn't seem to be any testing set-up for Android currently (amongst other platforms), but I will be using this in production in several ways in the upcoming week.\r\n\r\n\r\n**Please check if the PR fulfills these requirements**\r\n- [x] The commit follows our guidelines: https://github.com/reactiveui/reactiveui#contribute\r\n- [ ] Tests for the changes have been added (for bug fixes / features)\r\n- [ ] Docs have been added / updated (for bug fixes / features)\r\n\r\n**Other information**:\r\n- I'd like feedback from @reactiveui/reviewers-android, @binoypatel and @makon on this. Am I missing something? Is the naming alright? The obvious.\r\n- I'll be testing this thoroughly in the next couple of days.\r\n- I'll whip up a page in the docs after I've had the green light on this."},"comment":{"url":"https://api.github.com/repos/reactiveui/ReactiveUI/issues/comments/275995895","html_url":"https://github.com/reactiveui/ReactiveUI/pull/1250#issuecomment-275995895","issue_url":"https://api.github.com/repos/reactiveui/ReactiveUI/issues/1250","id":275995895,"user":{"login":"kentcb","id":1901832,"avatar_url":"https://avatars.githubusercontent.com/u/1901832?v=3","gravatar_id":"","url":"https://api.github.com/users/kentcb","html_url":"https://github.com/kentcb","followers_url":"https://api.github.com/users/kentcb/followers","following_url":"https://api.github.com/users/kentcb/following{/other_user}","gists_url":"https://api.github.com/users/kentcb/gists{/gist_id}","starred_url":"https://api.github.com/users/kentcb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kentcb/subscriptions","organizations_url":"https://api.github.com/users/kentcb/orgs","repos_url":"https://api.github.com/users/kentcb/repos","events_url":"https://api.github.com/users/kentcb/events{/privacy}","received_events_url":"https://api.github.com/users/kentcb/received_events","type":"User","site_admin":false},"created_at":"2017-01-30T07:32:19Z","updated_at":"2017-01-30T07:32:19Z","body":"@orzech85 @binoypatel @bidy are you guys able to pull this down and verify it resolves your issue?"}}
{"actor":{"display_login":"kentcb"}}