Silverlight 3 Navigation Bar에서 페이지 링크를 일시적으로 비활성화하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1606964

문제

Silverlight 3 Navigation Application이 있으며 항목을 편집 할 때 다양한 Silverlight 페이지에 대한 링크를 일시적으로 비활성화하고 싶습니다. 사용자는 화면에서 탐색하는 대신 편집을 명시 적으로 취소해야합니다.

편집] 프로그래밍 방식으로 내비게이션 링크를 일시적으로 비활성화하는 방법은 무엇입니까?

도움이 되었습니까?

해결책

각 하이퍼 링크의 ISENABLED를 글로벌 속성에 바인딩 할 수 있습니다. 속성을 코드에서 설정하여 내비게이션을 비활성화 할 수 있습니다.

mainpage.cs

public partial class MainPage : UserControl
{
    public bool IsNavigationEnabled
    {
        get { return (bool)GetValue(IsNavigationEnabledProperty); }
        set { SetValue(IsNavigationEnabledProperty, value); }
    }
    public static readonly DependencyProperty IsNavigationEnabledProperty =
        DependencyProperty.Register("IsNavigationEnabled", typeof(bool), typeof(MainPage), null);

    public MainPage()
    {
        InitializeComponent();

        DataContext = this;
    }

...

mainpage.xaml

<HyperlinkButton
    x:Name="Link1"
    IsEnabled="{Binding IsNavigationEnabled}"
    Style="{StaticResource LinkStyle}"
    NavigateUri="/Home"
    TargetName="ContentFrame"
    Content="home" />

home.xaml.cs

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        MainPage page = (MainPage)Application.Current.RootVisual;
        page.IsNavigationEnabled = !page.IsNavigationEnabled;
    }

다른 팁

이것은 대답보다 더 추측이지만 :

글쎄, 단순하고 유효하지 않은 방법이 있으며, 이는 편집 될 항목이 초점을 맞추고있을 때 모든 하이퍼 링크가 비활성화되도록 강요 한 다음 항목이 초점을 잃거나 사용자가 취소 할 때이를 활성화하는 것입니다. . 이렇게하려면 링크가있는 컨테이너를 잡고 컨테이너를 고치고 반복하여 비활성화하거나 활성화 할 수 있습니다.

내비게이션이 다른 컨트롤에 완전히 존재하는 경우, 동일한 초점 및 초점이 손실 된 후 해당 제어가 비활성화 된 것으로 설정 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top