1
我在這裏的目標是禁用和啓用GUI上的一些項目,基於在窗口後面的代碼中執行期間將被更改的標誌的值。我已經設置了一個DependencyProperty來完成這個任務。我相信我所要做的就是將此屬性綁定到適當的「IsEnabled」屬性,並且所有內容都應該可以工作。有些東西沒有正確連接,所以什麼也沒有發生。我在這裏錯過了一些語法嗎?DependencyProperty綁定不起作用
這裏是在WPF結合(MainWindow.xaml):
<MenuItem Name="LoggingMenuItem" Header="_Logging" IsCheckable="True" Checked="LoggingMenuItem_Checked" IsEnabled="{Binding ElementName=IsMonitoring}" />
這裏是在後面的代碼 「IsMonitoring」 屬性的聲明(MainWindow.xaml.cs):
public static readonly DependencyProperty IsMonitoringProperty =
DependencyProperty.Register("IsMonitoring", typeof(Boolean), typeof(Window));
public bool IsMonitoring
{
get { return (bool)GetValue(IsMonitoringProperty); }
set { SetValue(IsMonitoringProperty, value); }
}
僅供參考,這工作,但我不得不引用「this」的引號,使它像這樣'x:Name =「this」'編譯。這很有趣,但是從後面的代碼我可以通過名字訪問元素和屬性,沒有任何問題。當我綁定到在WPF中聲明的「其他」UI項目時,WPF代碼也是如此,這沒有問題。那麼爲什麼當我試圖訪問WPF代碼中聲明的代碼中的某些特殊情況? – Ultratrunks
在這種情況下,Ultratrunks,不要忘記將它標記爲答案 –
@Ultratrunks - 綁定將默認查看DataContext中用於控件的屬性(通常是您的「View Model」)。在你的情況下,你想看看控制本身的屬性。 – Reddog