我有一个ContentControl,我想在某些情况下更改它的ContentTemplate.我想在ContentTemplate中加载控件时添加一些值(文本到TextBox).但是,我发现在更改属性ContentTemplate后,直接应用新的ContentTemplate(在加载新模板的所有控件方面).
myContentControl.ContentTemplate = newContentTemplate;
// at this line controls of new template are not loaded!
Run Code Online (Sandbox Code Playgroud)
我通过在该行之后添加此代码进行测试:
var cp = GetVisualChild<ContentPresenter>(myContentControl);
var txt = myContentControl.ContentTemplate.FindName("Path_Cover", cp) as TextBox;
txt.Text = "test";
Run Code Online (Sandbox Code Playgroud)
GetVisualChild
private T GetVisualChild<T>(DependencyObject parent) where T : Visual
{
T child = default(T);
int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < numVisuals; i++)
{
Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
child = v as T;
if (child == null)
{
child = GetVisualChild<T>(v);
}
if (child != …Run Code Online (Sandbox Code Playgroud) 我正在使用电子表格_excel_reader 在 php 上读取 xls 文件并将数据插入到 oracle 数据库中。我正在使用以下代码:
$filename = 'test.xls';
$reader=new Spreadsheet_Excel_Reader();
$reader->setUTFEncoder('iconv');
$reader->setOutputEncoding('CP1251');
$reader->read($filename);
for($r=1; $r<=$reader->sheets[0]['numRows']; $r++)
{
for($c=1; $c<=$reader->sheets[0]['numCols']; $c++)
{
if (isset($reader->sheets[0]['cells'][$r][$c]))
{
//I'm using this code to get the value
echo $reader->sheets[0]['cells'][$r][$c];
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我尝试读取日期值时,不是显示“01/11/2014”,而是显示“41944”。任何人都可以帮助我吗?