在動態構建UserControl中,我format string以TextBox這種方式設置了:TextBox newTextBox = new TextBox();TempViewModel viewModel = new TempViewModel();var binding = new System.Windows.Data.Binding{ Source = viewModel, Path = new PropertyPath("DecimalValue"), ConverterCulture = new System.Globalization.CultureInfo("de-DE"), StringFormat = "{0:#,##0.00}"};newTextBox.SetBinding(TextBox.TextProperty, binding);public class TempViewModel{ public decimal DecimalValue { get; set; }}到目前為止效果很好。但在添加DependencyProperty后,格式將被忽略。Dependencyproperty是這樣定義的:public class UserControl_CBOGridQuotePositions : UserControl{ private static readonly DependencyProperty Amount_QuotePos_Base_DependencyProperty = DependencyProperty.Register("Amount_QuotePos_Base", typeof(System.Decimal), typeof(UserControl_CBOGridQuotePositions), new PropertyMetadata(0m)); public System.Decimal Amount_QuotePos_Base { get { return (System.Decimal)GetValue(UserControl_CBOGridQuotePositions.Amount_QuotePos_Base_DependencyProperty); } set { SetValue(UserControl_CBOGridQuotePositions.Amount_QuotePos_Base_DependencyProperty, value); } } private void MakeTheBindings(DependencyProperty dependencyProperty) { var binding = new Binding("Amount_QuotePos_Base"); binding.Source = this; // which is the UserControl_CBOGridQuotePositions newTextBox.SetBinding(dependencyProperty, binding); }}有沒有辦法在 TextBox 綁定到屬性時使格式工作?
1 回答

心有法竹
TA貢獻1866條經驗 獲得超5個贊
因為在 MakeTheBindings() 中,您要用新的 Binding 替換 Binding 。確保在執行此操作時 var binding = new Binding("Amount_QuotePos_Base"); 您還設置了所有屬性,例如 ConverterCulture 和 StringFormat
- 1 回答
- 0 關注
- 117 瀏覽
添加回答
舉報
0/150
提交
取消