如何在wpf中设置动态创建的扩展器的子值

时间:2015-02-17 20:35:51

标签: c# wpf label expander

我有一个方法,它接受一个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;  
        }
    }
 }

我知道我可以使用任何东西作为子值,比如标签或任何东西,但我不知道如何将它附加到新创建的扩展器上。感谢

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解您正在寻找的内容,但扩展器没有SubValue属性。你正在寻找的是Content属性。

this.expander.Content = new TextBlock(){Text=dlg.FileName};