我如何以编程方式执行以下操作(来自XAML):
<TextBox Name="OrderDateText"
Text="{Binding Path=OrderDate, StringFormat=dd-MM-yyyy}"
public DateTime OrderDate
Run Code Online (Sandbox Code Playgroud)
现在我有以下内容
TextBox txtboxOrderdDate = new TextBox();
Run Code Online (Sandbox Code Playgroud)
而且我知道我需要做类似的事情
Binding bindingOrderDate = new Binding();
bindingOrderDate.Source = "OrderDate";
Run Code Online (Sandbox Code Playgroud)
但我被困在这里......不知道如何继续应用StringFormat,我也不确定SOURCE是正确的方法(我应该使用ElementName吗?)
让我们MainWindow成为班级名称.MainWindow将以下代码更改为您的班级名称.
public DateTime OrderDate
{
get { return (DateTime) GetValue(OrderDateProperty); }
set { SetValue(OrderDateProperty, value); }
}
public static readonly DependencyProperty OrderDateProperty =
DependencyProperty.Register("OrderDate",
typeof (DateTime),
typeof (MainWindow),
new PropertyMetadata(DateTime.Now, // Default value for the property
new PropertyChangedCallback(OnOrderDateChanged)));
private static void OnOrderDateChanged(object sender, DependencyPropertyChangedEventArgs args)
{
MainWindow source = (MainWindow) sender;
// Add Handling Code
DateTime newValue = (DateTime) args.NewValue;
}
public MainWindow()
{
InitializeComponent();
OrderDateText.DataContext = this;
var binding = new Binding("OrderDate")
{
StringFormat = "dd-MM-yyyy"
};
OrderDateText.SetBinding(TextBox.TextProperty, binding);
//Testing
OrderDate = DateTime.Now.AddDays(2);
}
Run Code Online (Sandbox Code Playgroud)