6
我想使用x:Name綁定通過Caliburn.Micro的約定來解決嵌套的衛星用戶控件中的屬性綁定。解析外部用戶控件x:Caliburn.Micro中的名稱約定綁定
我們Views的界面非常標準。我們有一個包含用戶控件然後將其用於組成我們的觀點的UI,類似於下面的例子衛星項目:
<UserControl x:Class="Company.CompanyView" ...>
<StackPanel>
<customControls:CompanyNameControl />
<customControls:CompanyAddressControl />
....
</StackPanel>
</UserControl>
視圖模型對這一觀點暴露出將由組件綁定到性質組成這些用戶控件。
class CompanyViewModel : ...
{
public string CompanyName { get; set; }
public string CompanyAddressNo { get; set; }
public string CompanyAddressStreet { get; set; }
...
}
用戶控制通常是簡單的,但他們在很多不同的意見很大程度上重用。下面是一個可能的樣子的例子:
<UserControl x:Class="CustomControls.CompanyNameControl ...>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Company Name: " />
<TextBox x:Name="CompanyName" /> <!--This is how I'd like to bind-->
<TextBox Text="{Binding CompanyName}" /> <!--This is how I currently bind-->
</StackPanel>
</UserControl>
我的理解是,在Caliburn.Micro,X:名稱約定式綁定僅如果有一個視圖模型的查看工作。在這種情況下,UserControl本身不是一個View。它用於組成的視圖。
有沒有辦法讓綁定解析到ViewModel上,這個嵌套的衛星UserControl是由哪個View組成的?
啊,我知道這是愚蠢的......謝謝! – Adrian 2011-06-06 20:26:16