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