से मेल नहीं खाती है, मैं एक सी # निर्भरता संपत्ति को परिवर्तित करने की कोशिश कर रहा हूं जो कॉम्बोबॉक्स में दर्ज की गई अधिकतम लंबाई को F # में सीमित करता है। कार्यक्रम एक एमवीवीएम प्रोग्राम है जो मॉडल और व्यूमोडेल के लिए एफ # और दृश्य के लिए सी # का उपयोग करता है।एफ # डिफ़ॉल्ट मूल्य में निर्भरता संपत्ति
public class myComboBoxProperties
{
public static int GetMaxLength(DependencyObject obj)
{
return (int)obj.GetValue(MaxLengthProperty);
}
public static void SetMaxLength(DependencyObject obj, int value)
{
obj.SetValue(MaxLengthProperty, value);
}
// Using a DependencyProperty as the backing store for MaxLength. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MaxLengthProperty =
DependencyProperty.RegisterAttached("MaxLength",
typeof(int),
typeof(myComboBoxProperties),
new UIPropertyMetadata(OnMaxLengthChanged));
private static void OnMaxLengthChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
if (obj is ComboBox)
{
ComboBox comboBox = (ComboBox)obj;
comboBox.Loaded += (sender, e) =>
{
TextBox textBox = comboBox.Template.FindName("PART_EditableTextBox", comboBox) as TextBox;
if (textBox != null)
{
textBox.SetValue(TextBox.MaxLengthProperty, args.NewValue);
}
};
}
}
}
एफ # कोड यह है:: काम कर रहे सी # कोड यह है
type myComboBoxProperties() =
static let OnMaxLengthChanged (myobj1 : DependencyObject, args : DependencyPropertyChangedEventArgs) =
let comboBox = myobj1 :?> ComboBox
comboBox.Loaded.Subscribe (fun _ ->
let textBox : TextBox = comboBox.Template.FindName("PART_EditableTextBox", comboBox) :?> TextBox
match textBox with
| null ->()
|_ -> textBox.SetValue(TextBox.MaxLengthProperty, args.NewValue))
static let MaxLengthProperty = DependencyProperty.RegisterAttached("MaxLength", typeof<int>, typeof<myComboBoxProperties>, new UIPropertyMetadata(OnMaxLengthChanged))
static member GetMaxLength (myobj : DependencyObject) = myobj.GetValue(MaxLengthProperty) :?> int
static member SetMaxLength (myobj : DependencyObject, value : int) = myobj.SetValue(MaxLengthProperty, value)
समस्या मैं कर रहा हूँ कि XAML त्रुटि मैं है:
डिफ़ॉल्ट मान प्रकार संपत्ति के प्रकार से मेल नहीं खाता
MaxLength
मैं क्या कर रहा हूँ एनजी?
क्या आप एक स्टैक ट्रेस प्रदान कर सकते हैं? आप प्रयोग के लिए स्पष्ट रूप से डिफ़ॉल्ट मान सेट करने का भी प्रयास कर सकते हैं। 'नया यूआईप्रोपर्टी मेटाडाटा (0, ऑनमैक्स लम्बाई चेंज)); उदाहरण के लिए। ऐसा लगता है कि पैरामीटर के [त्रुटि] (http://referencesource.microsoft.com/#WindowsBase/Base/System/Windows/DependencyProperty.cs,4aed0e0929184ad0) के पल में त्रुटि होती है टाइप और प्रकार [स्वचालित रूप से जेनरेट किया गया] (http://referencesource.microsoft.com/#WindowsBase/Base/System/Windows/DependencyProperty.cs,c2c01ce10ae3e445rereferences) फ्रेमवर्क डिफ़ॉल्ट मान समानता द्वारा जो मेरे लिए स्थिर है। –
कोई स्टैक ट्रेस नहीं है, मैं इसे डीबग में करने की कोशिश कर रहा हूं। मैं डिफ़ॉल्ट नहीं दे सकता क्योंकि मुझे नहीं पता कि OnMaxLength को बदलने के लिए कैसे एक propertycallback में बदल दिया गया है। मैं F # –