我有一个方法,它接受一个ComboBoxItem名称,并根据该ComboBoxItem的名称创建一个带有标题的扩展器。如下所示。
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedItem = combobox.SelectedItem as ComboBoxItem;
if (selectedItem != null)
{
string name = selectedItem.Name;
Expander expander = new Expander {Header = name};
}
}
然后我想打开一个文件对话框,以便选择文件并将Expander的子值设置为所选文件的名称。包含文件对话框的代码与上面显示的代码相结合。
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedItem = combobox.SelectedItem as ComboBoxItem;
if (selectedItem != null)
{
string name = selectedItem.Name;
Expander expander = new Expander {Header = name};
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.DefaultExt = ".xlsm";
dlg.Filter = "Excel Files (*.xlsx) | *.xlsx";
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
//not sure what to do here, something like this maybe?
//this.expander.?subvalue? = dlg.FileName;
}
}
}
我知道我可以使用任何东西作为子值,比如标签或任何东西,但我不知道如何将它附加到新创建的扩展器上。感谢
答案 0 :(得分:1)
我不确定我是否理解您正在寻找的内容,但扩展器没有SubValue
属性。你正在寻找的是Content
属性。
this.expander.Content = new TextBlock(){Text=dlg.FileName};