C# 转换器在实例化期间仅运行一次
我有这个日历控件C# 转换器在实例化期间仅运行一次,c#,wpf,type-conversion,converter,ivalueconverter,C#,Wpf,Type Conversion,Converter,Ivalueconverter,我有这个日历控件 <Calendar x:Name="Calendario" SelectionMode="SingleRange" SelectedDatesChanged="Calendario_SelectedDatesChanged"> <i:Interaction.Triggers> <i:EventTrigger EventName="SelectedDatesChanged"> <cmd:Ev
<Calendar x:Name="Calendario" SelectionMode="SingleRange" SelectedDatesChanged="Calendario_SelectedDatesChanged">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedDatesChanged">
<cmd:EventToCommand Command="{Binding ProcesarFechasCommand}" CommandParameter="{Binding ElementName=Calendario,Path=SelectedDates,Converter={l:SelectedDatesToList}}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Calendar>
这个转换器呢
public class SelectedDatesToList : BaseConverter, IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var selectedDates = value as IList;
List<DateTime> ListaFechas = selectedDates.Cast<DateTime>().ToList();
return ListaFechas;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
public类SelectedDatesToList:BaseConverter、IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
var selectedDates=作为IList的值;
List ListaFechas=selectedDates.Cast().ToList();
返回ListaFechas;
}
公共对象转换回(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
抛出新的NotImplementedException();
}
}
我的问题是,如果转换器处于活动状态,我的命令始终以空列表形式接收值。如果我移除转换器,我的命令将接收allready filled列表
转换器仅在实例化期间运行。即使选定的日历日期稍后更改,转换器也不再运行
我的转换器或xaml有什么问题 您的convert方法被命中了吗?抱歉,这是什么意思?我的意思是,当您应用converter时,它的convert方法会从xaml调用?是的,它会被调用,但只有在窗口启动时才会被调用。至少我这么认为。断点仅在窗口启动时停止。该命令始终有效。不确定这是否是问题所在,但我通常将转换器声明为资源,并通过{StaticResource ResourceKey}扩展使用它