[問題] 有關binding的問題
各位版友大家好
我最近有個WPF程式binding使用上的問題想請教
因為我也剛學沒多久如果我有觀念上的錯誤也請指證
在程式方面我需要把xaml檔上面的<ellipse>的Fill、Width等的參數
預先定義在另一個xml檔裡在從xaml繫結過去簡單格式如下:
<Data>
<circle>
<Fill>black</Fill>
</circle>
</Data>
而在xaml檔則是先給binding來源
<Window.Resources>
<XmlDataProvider x:Key="aaa"
Source="bbb.xml" XPath="Data"/>
</Window.Resources>
然後在<ellipse>裡binding到xml裡的參數:
<Ellipse x:Name="circle"
DataContext="{Binding Source={StaticResource aaa}}"
Fill="{Binding XPath=/Data/circle/Fill}">
現在的困惑點在於如果我想加一個reload按鈕在我修改了xml檔存檔後
能夠直接反映修改後參數不重新compiler畫出新的ellipse圖形應該要怎麼做?
有先試著用Refresh()來寫但還是沒用
感覺他在畫出circle圓後就直接寫死了
我也有將xaml binding模式改成two way以及dynamicresource但是都無效不會刷新
我現在在嘗試想說能不能在按下按鈕的時後先將原本物件清掉
(canvas.Children.Remove(circle))之後在讓它重新刷新binding的內容
可是又感覺這想法好像不太對= =
想請問我的問題是在哪邊呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.192.94
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1449575230.A.603.html
推
12/08 20:07, , 1F
12/08 20:07, 1F
您好後來我有去網上找過資料試著在程式裡加了段:
public class item : INotifyPropertyChanged
{
private string _Fill;
public string Fill
{
get { return _Fill; }
set { _Fill = value; OnPropertyChanged("Fill"); }
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyname)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new
PropertyChangedEventArgs(propertyname));
}
}
}
如果先以Fill為例我先試著加了這段碼
但是有個問題就是我不清楚
如何將來源Xml檔的Fill丟進來
請問我應該怎麼做呢?
※ 編輯: qsx889 (223.139.192.94), 12/09/2015 19:28:35
※ 編輯: qsx889 (223.139.192.94), 12/11/2015 11:58:10
→
12/12 18:08, , 2F
12/12 18:08, 2F
→
12/12 18:10, , 3F
12/12 18:10, 3F
→
12/12 18:11, , 4F
12/12 18:11, 4F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章