請解釋控制和ContentControl之間的實際差異,因爲使用谷歌搜索沒有產生好的結果。Silverlight/WPF中的Control和ContentControl有什麼區別?
其實,我現在面臨與此相關的一個問題: 我有一個Autocompletebox控制(從繼承ContentControl中)。對於用戶輸入的新值,相應Property的Mode = TwoWay工作正常,Property的值在ViewModel中得到更新,如果用戶輸入另一個新值,則相同的重複。但是如果用戶再次輸入先前輸入的值,則屬性值不會被更新。
所以我想這可能是這個Autocompletebox控制應該從Control類而不是ContentControl中繼承。
我是否正確?,請添加您的輸入和反饋。
編輯 - 添加僞代碼::
控制類: -
public class MyAutoBox : ContentControl
{
public int MyProp
{
get { return (int)GetValue(MyPropProperty); }
set { SetValue(MyPropProperty, value); }
}
public static readonly DependencyProperty MyPropProperty =
DependencyProperty.Register("MyProp", typeof(int), typeof(MyAutoBox), new PropertyMetadata(0));
}
視圖模型: -
public class MyViewModel : ViewModelBase, INavigationAware
{
private int MyProp;
public int MyProp
{
get { return MyProp; }
set
{
if (MyProp != value)
{
MyProp = value;
RaisePropertyChanged(() => MyProp);
}
}
}
}
的XAML:
<MyControls:MyAutoBox Grid.Row="1"
Grid.Column="0"
Margin="10,0"
CanTypeIn="True"
MyProp="{Binding MyProp, Converter={StaticResource NullToNumericConverter},Mode=TwoWay}"
<MyControls/>
謝謝。
它不是MS自動完成框。這是由我們開發的自定義控件,它繼承自ContentControl。 – xpertprogrammer 2014-12-04 15:16:42