剛剛開始使用Caliburn和WPF,並且在使用參數包含UserControl的過程中遇到困難。將UserControl和構造函數綁定到ViewModel
獲得了一個名爲Item
的類,名爲SellPrice
的屬性返回Money
對象。我想將這個Money
對象轉移到UserControl以格式化此對象中的數據。我如何轉移對象?我需要使用構造函數嗎?
MainView.xaml
<DataGridTemplateColumn Header="Sell Price">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<local:MoneyControlView/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
上面的代碼工作正常,如果不會有任何參數,但我怎麼打發Money
對象?
我曾嘗試通過的DependencyProperty如下做到這一點:
public partial class MoneyControlView : UserControl
{
public static readonly DependencyProperty MoneyProperty = DependencyProperty.Register
(
"Money",
typeof(Money),
typeof(MoneyControlView),
new PropertyMetadata(new Money())
);
public Money Money
{
get { return (Money)GetValue(MoneyProperty); }
set { SetValue(MoneyProperty, value); }
}
public MoneyControlView()
{
InitializeComponent();
DataContext = new MoneyControlViewModel(Money);
}
}
然而,當使用它:
<local:MoneyControlView Money="{Binding BuyPrice}"/>
這是行不通的。該物業仍然是空的。
有一個問題 - 將Collection- 更改爲System.ComponentModel的ObservableCollection
- 。 –
Ryan
你想達到什麼目的?在你的MainView中加載ViewModel的視圖? –
@Ryan有什麼具體的理由來改變這個嗎?從來沒有任何問題,我的自定義班。 – 0x8BADF00D