您只能在DependencyProperty
支持的屬性上使用數據綁定。例如,如果您查看TextBlock
的文檔,您會發現Text
屬性與DependencyProperty
類型的公共靜態字段具有匹配的TextProperty
。
如果您查看Page
的文檔,您會發現沒有定義TitleProperty
,因此Title
屬性不是依賴項屬性。
編輯
有沒有辦法 「越權」 這可是你可以創建一個附加屬性: -
public static class Helper
{
#region public attached string Title
public static string GetTitle(Page element)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
return element.GetValue(TitleProperty) as string;
}
public static void SetTitle(Page element, string value)
{
if (element == null)
{
throw new ArgumentNullException("element");
}
element.SetValue(TitleProperty, value);
}
public static readonly DependencyProperty TitleProperty =
DependencyProperty.RegisterAttached(
"Title",
typeof(string),
typeof(Helper),
new PropertyMetadata(null, OnTitlePropertyChanged));
private static void OnTitlePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
Page source = d as Page;
source.Title = e.NewValue as string;
}
#endregion public attached string Title
}
現在你的頁面的XAML可能看起來有點像: -
<navigation:Page ...
xmlns:local="clr-namespace:SilverlightApplication1"
local:Helper.Title="{Binding Name}">
啊我明白了。我假設沒有辦法重寫這個? – zXynK 2010-04-18 19:20:21
@zXynK:附加屬性可能適用於您的情況,編輯答案以顯示如何完成。 – AnthonyWJones 2010-04-18 20:07:26
感謝您的幫助。 – zXynK 2010-04-19 20:19:43