1
好吧,有點奇怪 - 這可能很簡單,因爲我對Silverlight來說很新!沒有附加調試器時,Silverlight數據綁定會中斷
我有一個具有以下屬性的對象: - 使用從工具包中的數據形創建
private int targetID = NULL_TARGET_VALUE;
[Display(Name="Target", Order=1)]
[Required]
public int TargetID
{
get
{
return targetID;
}
set
{
if (this.targetID != value)
{
this.ValidateProperty("TargetID", value);
this.targetID = value;
this.RaisePropertyChanged("TargetID");
}
}
}
這個對象。我用的是AutoGeneratingField事件將項目更改爲組合框下拉與下面的代碼:
if (e.PropertyName == "TargetID")
{
ComboBox target = new ComboBox() { DisplayMemberPath = "Title", SelectedValuePath = "ItemID" };
target.ItemsSource = TaskManager.Manager.GanttItemSource;
var selectedItem = TaskManager.Manager.GanttItemSource.FirstOrDefault(p => p.ItemID == ParentTargetID);
target.SelectedItem = selectedItem;
e.Field.ReplaceTextBox(target, ComboBox.SelectedValueProperty, binding => binding.Converter = new TargetNullValueConverter());
break;
}
這確實導致下拉,因爲我期望的那樣。在我的保存按鈕事件我有這個代碼:
if (registerForm.ValidateItem())
{
this.task.Save();
}
如果調試器連接到silverlight項目這很好。如果不是那麼ValidateItem返回false,因爲它認爲我已經添加了一個無效的目標(「輸入不是正確的格式」是我得到的確切的驗證錯誤)。
任何想法真的很感激! (順便說一句只是爲了確認這種情況發生在發佈和調試構建模式,只需連接或卸下調試器會導致出現這種情況)