/* * MIT License * * Copyright (c) 2018 Clark Yang * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ using Loxodon.Framework.Binding; using Loxodon.Framework.Commands; using Loxodon.Framework.Contexts; using Loxodon.Framework.Interactivity; using Loxodon.Framework.ViewModels; using Loxodon.Framework.Views; using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; namespace Loxodon.Framework.Examples { public class Window1 : UIToolkitWindow { private IUIViewLocator locator; protected override void OnCreate(IBundle bundle) { WindowViewMode viewModel = new WindowViewMode(); VisualElement listContainer = this.Q("listContainer"); var listView = new ListView(viewModel.Items); listView.makeItem = () => new Label(); listView.bindItem = (e, i) => (e as Label).text = viewModel.Items[i]; listView.selectionType = SelectionType.Multiple; listView.onItemsChosen += obj => Debug.Log(obj); listView.onSelectionChange += objects => Debug.Log(objects); listView.style.flexGrow = 1.0f; listContainer.Add(listView); this.locator = Context.GetApplicationContext().GetService(); var bindingSet = this.CreateBindingSet(viewModel); bindingSet.Bind(this.Q