0
我已經成功地綁定了窗口項目以便在使用wpf數據綁定之前查看模型,幾乎和我在這裏完全一樣。WPF數據綁定,不知道爲什麼它不起作用
我有一個圖形用戶界面和我的TextBlock綁定的XAML來更改系統狀態的顏色和文本;
<TextBlock
HorizontalAlignment="Left" Margin="200,359,0,0" TextWrapping="Wrap"
Text="{Binding Path=StateText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
VerticalAlignment="Top" Width="565" Height="84"
Background="{Binding Path=StateColour, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
我在我的xaml.cs中將datacontext設置爲我的視圖模型;
MobilityWelcomeViewModel mobilityWelcomeViewModel = new mobilityWelcomeViewModel();
public MobilityWelcome()
{
InitializeComponent();
this.DataContext = this.mobilityWelcomeViewModel;
}
我有這個構造函數,它通過指定的適配器寫入我的數據模型;
public class MobilityWelcomeViewModel
{
private bool State;
private string _Text;
private Brush _StateColour;
BackgroundWorker StateWorker = new BackgroundWorker();
}
public ShellEMobilityWelcomeViewModel()
{
this._ANMStateColour = Brushes.White;
this.ANMStateWorker.DoWork += this.ANMStateWorker_DoWork;
this.ANMStateWorker.RunWorkerCompleted += this.ANMStateWorker_RunWorkerCompleted;
this.ANMStateWorker.RunWorkerAsync();
this._ANMText = "Loading ANM State";
IApplicationPointAdapter testWrite = AdapterFactory.Instance.GetApplicationPointAdapter();
testWrite.WriteBinary("HMI.EV.SITE1.STATUS.CONTACTBREAKEROPEN", false);
}
在我的視圖模型中我有屬性;
public Brush StateColour
{
get { return this._StateColour; }
set { this._StateColour = value; }
}
public string StateText
{
get { return this._Text; }
set { }
}
我有後臺工作人員,我可以看到在調試中更改這些值。
我真的很難過。整個綁定的東西在表面上看起來很簡單,所以,從我相當新的,也許很天真的知識中,我看不出我做錯了什麼。
在此先感謝。 (我也改變了變量名稱來僞裝我的項目,所以如果在對象之間存在拼寫差異,或者同樣忽略它)
謝謝你的評論,我實現了界面和移動的實例化的構造。但是,沒有效果。雖然我嘗試使用文本框而不是文本塊,並且該視圖模型參數與遠程更改一起使用。雖然只有文本會隨着視圖模型而改變,但筆刷不會 –
我很抱歉,我不確定我是否完全理解您的問題。但是我用Brush創建了一個示例項目作爲屬性,當我在viewmodel中更改它時,它更新了textblock的背景。我要說的一件事是你試圖改變這一行中私有屬性的顏色this._ANMStateColour = Brushes.White;你可以把它改成公共財產嗎?像ANMSTateColour = Brushes.White,因爲私有屬性不會觸發OnPropertyChanged,即使讓UI知道它的值已被更改 – Krishna
我找到了一個修復程序!我使用的語句是導入錯誤類型的畫筆。我改變使用System.Windows.Drawing使用System.Windows.Media –