Просто добавьте этот код под кодом JS.
var autoslideIndex = 0;
autoSlides();
function autoSlides() {
var i;
var slides= document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("dot");
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
autoslideIndex++;
if (autoslideIndex > slides.length) {autoslideIndex = 1}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[autoslideIndex-1].style.display = "block";
dots[autoslideIndex-1].className += " active";
setTimeout(autoSlides, 2000); // Change image every 2 seconds
}
Мне не нравится идея о том, что Expression Blend пытается создать экземпляры моих объектов данных.
Я установил DataContext через код, в котором я могу использовать Dependency Injection для внедрения правильных объектов, служб, поставщиков или того, что еще я использую для поиска своего кода.
Это может быть своего рода решение, использующее DataObjectProvider для маскировки того факта, что данные создаются вне XAML.
В нем будет указан тип DataContext, этого должно быть достаточно, чтобы Blend приобрел свойства.
Я еще не пробовал это, так что отнеситесь к этому с недоверием, но это, безусловно, стоит изучить.
Наличие его в кодовой части упрощает внедрение контекста данных с использованием единицы.
См. Статью Роба о данных времени разработки в Blend: http://www.robfe.com/2009/08/design-time-data-in-expression-blend-3 /
Вы можете (возможно, в 2009 году не смогли) получить лучшее из обоих миров, используя атрибут d: DataContext
. Вам не нужно ничего из этого ViewModelLocator
безумия , если вы еще не готовы к этому: -)
Сначала убедитесь, что у вас есть следующее пространство имен XML, определенное в вашем корневом элементе:
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
Затем вы можете добавить следующий атрибут к элементу в вашем xaml:
d: DataContext = "{d: DesignInstance IsDesignTimeCreatable = True, Type = vm: CustomerInsightViewModel}"
В вашем внутреннем коде xaml:
public CustomerInsightUserControl()
{
InitializeComponent();
if (!DesignerProperties.IsInDesignTool)
{
DataContext = new CustomerInsightViewModel();
}
}
Затем в ViewModel:
public CustomerInsightViewModel()
{
if (IsInDesignMode)
{
// Create design time data
Customer = new Customer() {
FirstName=...
}
}
else {
// Create datacontext and load customers
}
}
Не пропустите IsDesignTimeCreatable = True
, иначе Blend не создаст экземпляр вашего класса