Winui3 DataTemplateSelector всегда разбился при использовании AOTC#

Место общения программистов C#
Ответить
Anonymous
 Winui3 DataTemplateSelector всегда разбился при использовании AOT

Сообщение Anonymous »

// английский не является моим родным языком; Пожалуйста, извините за ошибки ввода.
< /code>
Вот пример. Не забудьте включить aot. < /P>
// Some useless details are removed
public interface A{}
public class B:A{}
public class C:A{}
public class ADataTemplateSelector : DataTemplateSelector
{
public DataTemplate TemplateForB { get; set; }
public DataTemplate TemplateForC { get; set; }

protected override DataTemplate SelectTemplateCore(object item)
{
if (item is B)
return TemplateForB;
else if (item is C)
return TemplateForC;

return base.SelectTemplateCore(item);
}
}
< /code>









< /code>

Тогда он вылетел с неотъемлемым исключением, например: < /p>
Specified cast is not valid.
WinRT.ExceptionHelpers.g__Throw|38_0(Int32 hr)
ABI.Microsoft.UI.Xaml.IFrameworkElementOverridesMethods.MeasureOverride(IObjectReference _obj, Size availableSize)
Microsoft.UI.Xaml.FrameworkElement.MeasureOverride(Size availableSize) Microsoft.UI.Xaml.FrameworkElement.Microsoft.UI.Xaml.IFrameworkElementOverrides.MeasureOverride(Size availableSize)
ABI.Microsoft.UI.Xaml.IFrameworkElementOverrides.Do_Abi_MeasureOverride_0(IntPtr thisPtr, Size availableSize, Size* result)
< /code>

Тогда я отключил AOT, и все работало правильно. (PublishTrimmed< /code> казалось в порядке) < /p>

(старая история между мной и AOT) < /p>
она однажды разбила при настройке списка.true
< /code>
И этот код теперь все еще находится в проекте. Наверное, это еще одна проблема AOT. < /P>

Я не нашел ничего, что касается как Datatemplatelector < /code>, так и AOT < /code>. < /P>

Я ожидаю, что он будет правильно работать, просто как отключено.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -using-aot
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»