Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update NavigationView to use ItemsRepeater (Dev Tracking) #1477

Closed
23 tasks done
ojhad opened this issue Oct 22, 2019 · 3 comments
Closed
23 tasks done

Update NavigationView to use ItemsRepeater (Dev Tracking) #1477

ojhad opened this issue Oct 22, 2019 · 3 comments
Assignees
Labels
area-NavigationView NavView control team-Controls Issue for the Controls team working on it
Milestone

Comments

@ojhad
Copy link
Contributor

ojhad commented Oct 22, 2019

Tracking work for #378

Review Test Coverage

  • Verify visual tree verification test coverage is expansive (1 day)
  • Verify that test coverage is expansive enough to catch potential problems during the move (0.5 day)

Update Selection Logic To Use SelectionModel

  • Integrate SelectionModel to handle single level selection
    • Update NavigationViewItemBase & NavigationViewItem to be responsible for selection (2 days)
      • NVI and NVIB Regular selection logic
      • Account for Settings item selection
      • For TopNav, account for keeping track of selection state between Primary and Overflow menu
    • Hook up current NavigationView selection related APIs to SelectionModel (SelectedItem, SelecitonChanged event, etc) (1 day)

Move to Repeater

  • Write custom implementation of IElementFactory to handle wrapping of content in NVI items (0.5 day)
  • Update NVI to be responsible for handling interaction events (1 day)
    • SelectionFollowsFocus behavior
  • Implement functionality to handle MenuItemContainerStyle/MenuItemContainerStyleSelector API (0.5 day)
  • Move LeftNav to Repeater (1 day)
    • Have Repeater for in MarkUp and Databinding scenarios
  • Move TopNav to Repeater (2 day)
    • Have Repeater for in MarkUp and Databinding scenarios
    • Hook up SplitDataSource implementation to Repeater implementation
    • Simplify existing width sizing logic in MeasureOverride
  • Update Animations (if needed) (1 day)

AutomationPeer

  • NavigationViewItemAutomationPeer/NavigationViewAutomationPeer (1 day)

Revisit issues/PRs that are dependent on this refactor

@ad1Dima
Copy link
Contributor

ad1Dima commented Dec 2, 2019

FYI: Updated #1497 based on your PR
https://github.com/ad1Dima/microsoft-ui-xaml/tree/user/ad1Dima/NavigationView_BottomMenuItems_repeaterbased

@ojhad
Copy link
Contributor Author

ojhad commented Feb 6, 2020

@ad1Dima I am going to close this issue as the refactor is now in pre-release. Let me know if there's anything I can help you with!

@ojhad ojhad closed this as completed Feb 6, 2020
@ad1Dima
Copy link
Contributor

ad1Dima commented Feb 6, 2020

@ojhad sure. I gonna check this next week.

@msft-github-bot msft-github-bot added the needs-triage Issue needs to be triaged by the area owners label Feb 6, 2020
@StephenLPeters StephenLPeters removed the needs-triage Issue needs to be triaged by the area owners label Feb 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-NavigationView NavView control team-Controls Issue for the Controls team working on it
Projects
None yet
Development

No branches or pull requests

5 participants