2012-07-06 3 views
0

홈 페이지에 임의의 순서로 타일이있는 대도시 스타일 앱이 있습니다. 타일 ​​하나를 제거하면 다른 타일 모두가 하나의 타일을 제거하여 생성 된 간격을 채우기 위해 다시 정렬됩니다. Windows 8 바탕 화면보기에서 같은 현상을 볼 수 있습니다. WinJS 또는 WinRT를 사용하여이를 달성 할 수 있습니까?Windows의 대도시 스타일 앱에서 타일 자동 정렬

+0

gridLayout을 인스턴스화하는 updateLayout 함수를 만들려고 했습니까? – Aymeric

+0

물론 WinJS 또는 WinRT는 WinJS 또는 XAML을 의미합니까? 당신은 선호합니까? –

+0

나는 그것을 시도하지 않았다. 어떤 방법이든 그것을 사용하는 방법을 참조하십시오. – Mugu

답변

0

ListView 데이터 원본을 직접 수정하면됩니다. 예를 들어

,이 도움이

// create a reference of your data source so that it can be accessed 
// when you need to modify it 
var yourBindingList; 

... 

// code where you bind your data to your list view 
yourBindingList = WinJS.Binding.List([{id: 1, name: 'one'}, 
    {id: 2, name: 'two'}, {id: 3, name: 'three'}]); 
var listViewControl = document.getElementById('yourListViewDiv').winControl; 
WinJS.UI.setOptions(listViewControl, { 
    selectionMode: 'single', 
    itemDataSource: yourBindingList.dataSource, 
    itemTemplate: yourItemTemplate, 
}); 

... 

// code where you remove the first item in your list view 
yourBindingList.splice(0, 1); 

희망.

+0

을 통해 작업하는 것이 더 좋을 것입니다. 특정 타일을 제거하여 공간을 남기지 않고 타일을 다시 배열합니다. – Mugu

+0

@Mugu 필자의 경우, 공간을 남기지 않고 나머지 타일과 올바르게 정렬한다. –

1

IObservableCollection에 바인딩 된 ListView 또는 GridView를 사용하는 경우 항목을 삭제/추가 할 때 항목이 자동으로 올바르게 맞게됩니다. IObservableCollection (또는 ObservableList)를 사용하여

자동으로 항목을 추가/제거하기위한 "올바른"애니메이션을 추가 할 AddRemoveTransitions를 선택 (A ChildrenTransitions를 추가 할 수 있습니다.

나는이 테스트하지 않았습니다 JS/Html, Xaml/C#에서 잘 작동합니다.