40 lines
1.1 KiB
C#
40 lines
1.1 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Globalization;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using System.Windows;
|
||
using System.Windows.Data;
|
||
|
||
namespace MainShell.Converter
|
||
{
|
||
public class ScreenToViewModelConverter : IValueConverter
|
||
{
|
||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||
{
|
||
if (value == null) return null;
|
||
|
||
var viewModelType = value.GetType();
|
||
var viewName = viewModelType.FullName.Replace("ViewModel", "View");
|
||
var viewType = Type.GetType(viewName);
|
||
|
||
if (viewType != null)
|
||
{
|
||
// 创建View实例,并设置其DataContext为当前的ViewModel
|
||
var view = (FrameworkElement)Activator.CreateInstance(viewType);
|
||
view.DataContext = value;
|
||
return view;
|
||
}
|
||
|
||
return null;
|
||
}
|
||
|
||
|
||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||
{
|
||
throw new NotImplementedException();
|
||
}
|
||
}
|
||
}
|