20160823

我是在WPF ListBox 使用Bindfing時遇到這問題,

 

這裡有網上另篇文章可參考,

http://bbs.csdn.net/topics/390082724?page=1#post-395008700

 

我的case的話,我是在Xaml寫這樣

<ListBox ItemsSource="{Binding ErrLs}">

 

然後綁定的DataContext的Class裡有ErrLs這個屬性,

 

我經過試驗,如果更複雜一點的綁定,使用類似 "{Binding Path=SomeErrClass.ErrLs}"

這是用在綁定的DataContext的Class裡有SomeErrClass這個屬性,SomeErrClass底下又有ErrLs這個屬性,

這種兩層式的榜定就可能出現這問題

 

單層式的綁定的話

<ListBox ItemsSource="{Binding ErrLs}">

 

如果在DataContext裡這樣寫

      public List<ExcMsg> ErrLs
        {
            get{return new List<ExcMsg>();}

            set{}

        }

get, set使用{},且get裡有寫return,

可能就會出現這問題,

 

我目前是試出只寫分號就沒問題,

      public List<ExcMsg> ErrLs
        {
            get;

            set;

        }

那這樣的話ErrLs就必須在其他地方想辦法使用程式碼給他值了

 

 

20170320

剛剛遇到同個錯誤訊息,卻發現是另個不同問題

我檢查上面所列都無誤,

最後懷疑xaml有問題,細看之後發現xaml有些多餘不屬於任何元素的字散在空白處,

像是底下的sfad

 
                   Margin="{Binding Source={x:Static e:ESunStr.MProp}}" Name="dataGridCodeMap" CanUserAddRows="True"  MinWidth="1" HorizontalScrollBarVisibility="Auto"  >
sfad
        <DataGrid.Columns>
            <DataGridTemplateColumn>
 

 

且我專案Clean再Rebuild竟然全部Build成功,也就是編譯器沒偵測到xaml那些錯字,

卻報給我"項目為空"錯誤訊息

 

我把sfad去掉之後,讓xaml恢復正確格式,就完全沒問題了

 

 

 

arrow
arrow
    全站熱搜

    olivermode 發表在 痞客邦 留言(0) 人氣()