2016-05-23 42 views
-2

我有同樣的問題,因爲這太問題:TextBox, Button and ListBox in a ListBox不能鍵入類隱式轉換爲

,所以我把@Andy的答案,但它給了我麻煩:

private void ButtonAddNewTask_Click(object sender, RoutedEventArgs e) 
{ 
    Button btn = (Button)sender; 
       IssueView curIssue = (Issue)btn.DataContext; 
       if (curIssue != null) 
       { 
        curIssue.Issue.Comments.Add(new Comment() 
        { 
         Commentary = curIssue.NewCommentName 
        }); 
       } 
} 

不知是否是我的錯誤,我沒有很好地將他的答案適應於我的代碼,如果帖子太舊或者@Andy忘記了某些東西,我無法得到什麼。

編輯我的班和適應按鈕單擊事件

public sealed class Issue 
{ 
    public string Name { get; set; } 
    public string Detail { get; set; } 

    private ObservableCollection<Comment> comments = 
    new ObservableCollection<Comment>(); 
    public IList<Comment> Comments 
    { 
     get { return comments; } 
    } 
} 

public sealed class Comment 
{ 

    // string AssociatedIssue { get; set; } 
    public string Commentary { get; set; } 
} 

class IssueView : INotifyPropertyChanged 
{ 
    public Issue Issue { get; set; } 

    private string newCommentName = string.Empty; 

    public string NewCommentName 
    { 
     get { return newCommentName; } 
     set 
     { 
      newCommentName = value; 
      OnPropertyChanged("NewCommentName"); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 
    private void OnPropertyChanged(string propName) 
    { 
     PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName)); 
    } 
} 

}

+1

這裏'Project'和'ProjectView'似乎是該提問者代碼的特定類(接口?)。你應該適應你的分類 – Pikoh

+0

你正在使用什麼類型 – Nkosi

+0

以下是我正在使用的課程,這些基本上與鏈接的SO問題相同 – Babuh

回答

0
// Types at the beginning and end of this statement should be the same 
ProjectView curProject = btn.DataContext as ProjectView; 
-2

難道你試試這樣?:

private void ButtonAddNewTask_Click(object sender, RoutedEventArgs e) 
{ 
Button btn = (Button)sender; 
ProjectView curProject = (Project) btn.DataContext; 
if(null != curProject) 
    { 
    curProject.Project.Tasks.Add(new Task() 
     { 
     Name = curProject.NewTaskName 
     }); 
    } 
} 

你如何試圖將項目轉化爲一個ProjectView。看起來,它們是兩個不同的類,沒有任何繼承。

+0

我得到完全相同的錯誤! – Babuh

+0

@Babuh對不起,我在編輯我的答案,你能不能讀最後的句子並提供一些有關這些類的信息? – Marius

+0

好吧,在我投降之前,如果你想要別人來幫助你,你可以提供更多的信息。 – Marius

0

您需要將ProjectView存儲在ProjectView變量(而不是Project)中。

ProjectView curProject = (btn.DataContext as ProjectView); 

如果該DataContext永遠不能轉換爲ProjectView,那麼curProject將始終爲空。

相關問題