2016-06-12 5 views
1

여러 언어를 지원하는 응용 프로그램이 있습니다. 각 언어는 ResourceDictionary에 저장되어 실행시에 주요 리소스 사전에 병합됩니다. 모든 것은 햄버거 메뉴를 제외하고는 작동합니다. 메뉴에는 사전에서 병합 된 값이 표시되지 않습니다. 메뉴의 각 버튼에는 StaticResource에 바인딩 된 텍스트가 있습니다.UWP 템플릿 10 햄버거 메뉴. 프로그래밍 방식으로 단추 텍스트 업데이트

햄버거 메뉴는 App.xmal.cs에서 OnInitializeAsync가 호출되기 전에 만들어진 것 같습니다. 여기서는 사전을 병합하고 햄버거 메뉴가 항상 기본 사전의 기본 텍스트를로드하기 때문입니다.

응용 프로그램에서 다른 언어를 선택하면 응용 프로그램의 나머지 부분이 즉시 새 언어로 변경되지만 햄버거 메뉴는 텍스트를 업데이트하지 않으므로 텍스트를 강제로 업데이트 할 방법을 찾을 수 없습니다.

햄버거 메뉴에서 버튼의 텍스트를 동적으로 변경하는 방법을 아는 사람이 있습니까?

+0

프로그램을 시작할 때 메뉴 텍스트를 변경하는 문제가 해결되었습니다. 사전 병합은 OnInitializeAsync에서 가장 먼저 수행 한 작업이 실행되기 전에 수행합니다. 하지만 일단 앱이 실행되면 메뉴를 변경할 수 없습니다. – Terry151151

+0

샘플 응용 프로그램을 제공하면 더 유용 할 것입니다. –

답변

0

이것은 특히 간단합니다. 이것은 XAML 일뿐입니다. HamburgerButtonInfo 안에 TextBlock에 텍스트를 제공합니다. TextBlock에 x : Name을 추가하기 만하면 Shell에서 원하는대로 변경할 수 있습니다. 나는 이것이 의미가 있다는 것을 확신하지 못한다. 그러나 나는 그것이 확실히 희망한다. 템플릿 10을 사용하여 무언가를 업데이트하지 않고 TextBlock을 업데이트하는 것임을 기억하십시오. 이것은 단지 XAML 일뿐입니다.

public class Shell 
{ 
    public void UpdateText(string text) 
    { 
     this.MyTextBlock.Text = text; 
    } 
} 

특별한 것은 없습니다.

+0

모든 버튼이 묶여있는 사전을 바꾸고 있기 때문에 햄버거 메뉴를 통해 모든 내용을 자동으로 새로 고칠 방법이없는 것입니까? 당신이 모든 버튼을 반복해야한다는 것을 암시하면 xaml 내부의 각 버튼의 텍스트를 찾은 다음 텍스트를 변경하기 위해 수동 사전 검색을 수행해야합니다. 일반적으로 NavigationService.Refresh()를 호출하면 모든 것이 업데이트됩니다. – Terry151151

관련 문제