0
사용자가 뷰에서 이미지를로드 할 수있게하려고합니다.Caliburn.Micro를 사용하여 viewmodel의 이미지를보기로로드하십시오.
내 주요보기 :
<UserControl x:Class="TestApplication.Views.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="0.3*" />
</Grid.ColumnDefinitions>
<Image
Grid.Column="0"
Stretch="Uniform"
x:Name="Preview">
<Image.Source>
<BitmapImage UriSource="pack://application:,,,/Resources/placeholder.jpg" />
</Image.Source>
</Image>
<ContentControl
Grid.Column="1"
x:Name="ImageManagement" />
</Grid>
</UserControl>
내 주요 뷰 모델 :
namespace TestApplication.ViewModels
{
using System;
using System.ComponentModel.Composition;
using System.Windows.Controls;
using Caliburn.Micro;
using PropertyChanged;
using TestApplication.Events;
[ImplementPropertyChanged]
[Export(typeof(MainViewModel))]
public class MainViewModel : PropertyChangedBase, IHandle<FileSelectedEvent>
{
private readonly IEventAggregator events;
[ImportingConstructor]
public MainViewModel(IEventAggregator events)
{
this.events = events;
this.events.Subscribe(this);
this.ImageManagement = new ImageManagementViewModel(events);
}
public ImageManagementViewModel ImageManagement { get; set; }
public Image Preview { get; set; }
public void Handle(FileSelectedEvent message)
{
// load the selected image
}
}
}
이미지 자리 표시가 표시되지 않으며, 스눕도 표시되지 않습니다. BitmapImage
인스턴스화하고 Handle
방법에서 Preview.Source
으로 설정하여 이미지를로드 할 때
게다가, ... Preview
속성은 널 (null)이며, I는 먼저 초기화하면, 어느 표시 결코.
PropertyChanged는 Fody를 통해 처리됩니다.
자리 표시 자 아마 잘못된 URI입니다이로 전환이 문제를 해결했다. 당신을 위해 그것을 디버깅 할 수 없습니다. 미리보기는 포함 된 코드의 어떤 것에도 바인딩되지 않으므로이 마법이 어떻게 작동하는지 확신 할 수 없습니다. – Will
Image의 기본 규칙은 Source 속성에 있고 Loaded에 의해 트리거됩니다. 이미지를 URI 또는 문자열 값으로 설정해야하며 실제 이미지 컨트롤이 필요하지는 않습니다. – mvermef
나는 @Will이 패키지 uri에 관해서 옳다고 생각한다. 나는 당신이 그것을 시작할 필요가 있다고 생각하지 않는다. 그냥 일단 속성 변경이 트리거되면 관습에 따라 바인드해야 소스를''Image x : Name = "Preview"Fill = "Uniform"Source = "/ Resources/placeholder.jpg"/>''로 설정하십시오. – mvermef