如何在 wpf 中设置 sub-value 动态创建的扩展器

How to set sub-value of dynamically created expander in wpf

我有一个方法,它接受一个 ComboBoxItem 名称并根据该 ComboBoxItem 的名称创建一个带有 header 的扩展器。如下所示。

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};
    }
 }

然后我想打开文件对话框以 select 文件并将扩展器的 sub-value 设置为文件的名称 selected。带有文件对话框的代码结合上面的代码如下所示。

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;  
        }
    }
 }

我知道我可以使用任何东西作为 sub-value,比如标签或任何东西,但我不确定如何将它附加到新创建的扩展器。谢谢

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

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