2014-11-24 6 views
1

내 WPF 응용 프로그램에서 Caliburn.Micro (2.0.1)를 사용합니다. App.xaml에서 나는 BooleanToVisibilityConverter이Caliburn.Micro와 함께 사용하는 BooleanToVisibilityConverter의 이상한 동작

<BooleanToVisibilityConverter x:Key="BoolToVis" /> 

지금은 내보기 중 하나를 사용하고자 할 때이 변환기 내가

<Button x:Name="MyButton" Visibility="{Binding visibility, Converter={StaticResource BoolToVis} }"/> 

모두가 위대한 작품 같은 것을 쓴 선언하지만 지금은이 컨버터를 사용해야합니다 내 MainVeiew. 이보기가 내 기본보기입니다. 응용 프로그램이 시작되면 그것을 던져 예외에게의

System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll 

그것은 내가보기

<Window.Resources> 
    <BooleanToVisibilityConverter x:Key="BoolToVis2" /> 
</Window.Resources> 

에 작성하고 BoolToVis 모든 것이 잘 작동 대신 BoolToVis2를 사용하기 때문에 경우에 저에 대한 우리 모두의 verry 이상하다. 그것은 큰 문제는 아니지만 나는이 행동을 이해하지 못합니다. applcation의

샘플 코드 :

App.xaml

<Application x:Class="Test.App" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="clr-namespace:Test" 
     > 
<Application.Resources> 
    <ResourceDictionary > 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary> 
       <local:AppBootstrapper x:Key="Bootstrapper" /> 
      </ResourceDictionary> 
     </ResourceDictionary.MergedDictionaries> 
     <BooleanToVisibilityConverter x:Key="BoolToVis" /> 
    </ResourceDictionary> 
</Application.Resources> 
</Application> 

AppBootstrapper

public class AppBootstrapper:BootstrapperBase 
{ 
    public AppBootstrapper() 
    { 
     Initialize(); 
     DisplayRootViewFor<MainViewModel>(); 
    } 
} 

MainViewModel

public class MainViewModel : Screen 
{ 
    bool _visibility; 


    public bool Visibility 
    { 
     get { return _visibility; } 
     set 
     { 
      _visibility = value; 
      NotifyOfPropertyChange("Visibility"); 
     } 
    } 

    protected override void OnActivate() 
    { 
     base.OnActivate(); 
     Visibility = false; 
    } 
} 

MAINVIEW

모든 UIElement에 대한
<Window x:Class="Test.MainView" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainView" Height="300" Width="300"> 
<Grid> 
    <Button x:Name="MyButton" Content="Test" Visibility="{Binding Visibility, Converter={StaticResource BoolToVis}}" /> 
</Grid> 

+1

문제가 해결되었으므로 어딘가에 문제가 있습니다. nimimal 애플 리케이션에서 이것을 rperoduce하려고하고 여전히 실패한다면, 그 코드를 게시하십시오. –

답변

1

Visibility 속성은 가시성 열거에서 값을 가져옵니다. 부울을 사용하는 대신 표시, 숨김 또는 접음 사용.