我的问题可能是其他转换问题的重复,但我觉得我的问题不同。
这里是... [简化示例]。
public class DataWrapper<T>
{
public T DataValue{ get; set; }
public DataWrapper(T value)
{
DataValue = value;
}
public static explicit operator DataWrapper<T> (T value)
{
return new DataWrapper<T>(value);
}
public static implicit operator T(DataWrapper<T> data)
{
return data.DataValue;
}
}
现在,在我的 ViewModel 中:
public class ViewModel
{
public DataWrapper<string> FirstName { get;set; }
public DataWrapper<string> LastName { get; set; }
}
在 XAML 中:
<TextBlock Text="{Binding FirstName}" />
<TextBlock Text="{Binding LastName}" />
我的问题是,这行得通吗?WPF 绑定会在我的类中调用Implicit
and转换器,而不是需要为每个.Explicit
DataWrapper<T>
IValueConverter
TextBlock