Чтобы связать атрибут Polyline Points с вашей моделью просмотра успешно (т. е. обновить его при изменении связанного PointCollection), вам следует избегать изменения PointCollection как коллекции (Clear, Add и т. д.). Polyline не заметит, что даже привязка к ObservableCollection of Points с пользовательским конвертером не поможет.
Вместо этого вы должны рассмотреть свой PointCollection как свойство: установите его с помощью вновь созданного PointCollection и выполните пожар событие NotifyPropertyChanged:
private PointCollection points = new PointCollection();
public PointCollection Points
{
get { return points; }
set
{
points = value;
NotifyPropertyChanged("Points");
}
}
public void SomeUpdateFunc()
{
PointCollection pc = new PointCollection();
// Do some adding: pc.Add(new Point(x, y)); etc
this.Points = pc; // set via the setter, so the notification will fire
}
Теперь полилиния должна быть обновлена должным образом, удачи!
Это - известная проблема с aspnet_isapi.dll и в настоящее время нет никакого обходного решения. Причина Вы не видите эту проблему при выполнении сайта во встроенном веб-сервере Visual Studio (иначе Cassini) состоит в том, потому что это - весь управляемый код и не полагается на aspnet_isapi.dll.
Это будет обращено в будущей версии ASP.NET.
Проблема на самом деле заключается в рамках Windows, не ASP.NET. Windows установил MAX_PATH в 260 и когда IIS возьмет запрос на более длительное имя файла, это перестанет работать. Вы, вероятно, нашли уже, эта статья KBase, но для кого-либо еще: http://support.microsoft.com/kb/q177665/. Применение К: Раздел показывает, что это - ожидаемое поведение от NT 3.51 полностью к Vista и Серверу 2003.
Что касается обходного решения, у меня была аналогичная ситуация, но мы будем, отказываясь от наших попыток избежать параметра строки запроса и сделали это так или иначе.
Спасибо за Ваш ответ. В то время как я не нашел, что точная статья, нашел подобным. Однако это не ограничение в IIS. Можно передать более длинный путь в запросе к IIS, и он возвратит корректный ответ. Можно проверить путем попытки простой страницей HTML. Проблема только происходит, чтобы использование aspnet_isapi.dll обработало запросы. Даже интегрированный сервер отладки в рамках Visual Studio может обработать более длинные пути, чем 260.
Вы могли использовать переписывающий URL ISAPI, такой как IIRF для перезаписи URL во что-то, что aspnet_isapi может обработать.
@Haacked:
Фил, вы упомянули, что это проблема с aspnet_isapi.dll. Разве это не означает, что эта проблема не должна существовать в режиме интегрированного конвейера IIS7?
Однако из того, что я слышал, ( http://forums.iis.net/t/1105360.aspx ]) это все еще происходит.
Я столкнулся с той же проблемой, и я чувствую себя как бы в затруднительном положении. Похоже, что это влияет на маршрутизацию ASP.NET. Таким образом, любое приложение ASP.NET MVC должно иметь URL-адреса короче 260, после чего оно должно вернуться к запросам, что кажется полным 180!
(Извините за комментарии к ответам ... недостаточно репутации для комментариев. :()