2010-04-01 69 views
1

我在我的Silverlight應用程序中有一個DataGrid,它有幾列。幾個基本列綁定沒有問題。一列有一個用戶控件在它和XAML如下:Silverlight綁定:數據網格中的用戶控件


<data:DataGridTemplateColumn Header="" CanUserSort="True" Width="107"> 
    <data:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <local:StaticPageEnlistment EnlistmentName="{Binding SiteName}" Width="400" Height="150"/> 
     </DataTemplate> 
    </data:DataGridTemplateColumn.CellTemplate> 
</data:DataGridTemplateColumn> 

所以我有一個公共財產,這是一個名爲EnlistmentName字符串,我已綁定到的網站名稱值。我在所有其他colums中使用這個相同的「{Binding SiteName}」,沒有問題,爲什麼用戶控件不能接受相同的綁定字符串?

回答

0

根據猜測,您尚未將EnlistmentName作爲DependencyProperty實施。你會像這樣在你的StaticPageEnlistment UserControl中這樣做: -

public string EnlistmentName 
    { 
     get { return GetValue(EnlistmentNameProperty) as string; } 
     set { SetValue(EnlistmentNameProperty, value); } 
    } 

    public static readonly DependencyProperty EnlistmentNameProperty = 
      DependencyProperty.Register(
        "EnlistmentName", 
        typeof(string), 
        typeof(StaticPageEnlistment), 
        new PropertyMetadata(null)); 
+0

安東尼,你31秒快:-) – Timores 2010-04-01 21:34:09

+0

感謝您的建議。我試過了,它似乎沒有解決它。另外,當我將字符串硬編碼到像EnlistmentName =「Test String」這樣的屬性中時,綁定工作正常,所以我不認爲它是用戶控件不允許綁定的isdsue。 – Eric 2010-04-01 21:48:52

+0

等一下。沒關係......現在正在工作......我不得不改變我的財產,因爲它和現在的工作一樣。謝謝! – Eric 2010-04-01 21:51:59

0

EnlistmentName是DependencyProperty?根據MSDN,綁定的目標必須是DependencyProperty。