C# 单元模板数据网格内的数据绑定不工作

C# 单元模板数据网格内的数据绑定不工作,c#,wpf,data-binding,datagrid,C#,Wpf,Data Binding,Datagrid,我尝试将类对象StrategySubscription中的List属性SubscribedSymbols作为List的一部分绑定到数据网格中特定列的每个单元格中的组合框,但无法使数据绑定正常工作 自动列生成器工作并将值填充到网格中。因此,我确信数据是存在的 我附上了xaml代码和数据对象以及当前输出的屏幕截图 您能帮助使数据绑定正常工作吗?我希望SubscribedSymbols中的字符串集合填充到模板列中每个单元格的组合框中 <DataGrid ItemsSource="{Binding

我尝试将类对象
StrategySubscription
中的
List
属性
SubscribedSymbols
作为
List
的一部分绑定到数据网格中特定列的每个单元格中的组合框,但无法使数据绑定正常工作

自动列生成器工作并将值填充到网格中。因此,我确信数据是存在的

我附上了xaml代码和数据对象以及当前输出的屏幕截图

您能帮助使数据绑定正常工作吗?我希望
SubscribedSymbols
中的字符串集合填充到模板列中每个单元格的组合框中

<DataGrid ItemsSource="{Binding StrategySubscriptions}" AutoGenerateColumns="False">

                    <DataGrid.Columns>

                        <DataGridTextColumn Header="Strategy ID" Binding="{Binding StrategyId}"/>
                        <DataGridTextColumn Header="Strategy Name " Binding="{Binding StrategyName}"/>
                        <DataGridTextColumn Header="Strategy Capitalization" Binding="{Binding CapitalAllocation}"/>
                        <DataGridComboBoxColumn Header="Symbol Subscriptions" ItemsSource="{Binding SubscribedSymbols, RelativeSource={RelativeSource TemplatedParent}}"/>

                    </DataGrid.Columns>

                </DataGrid>

public class StrategySubscription
    {
        public Guid StrategyId { get; set; }
        public string StrategyName { get; set; }
        public int CapitalAllocation { get; set; }
        public List<string> SubscribedSymbols { get; set; }

        public StrategySubscription(string strategyName, Guid strategyId, int capitalAllocation, List<SymbolSubscription> symbolSubscriptions)
        {
            StrategyName = strategyName;
            StrategyId = strategyId;
            CapitalAllocation = capitalAllocation;
            SubscribedSymbols = symbolSubscriptions.Select(x => x.Symbol.SymbolId).ToList();
            //SubscribedSymbols = String.Join(", ", symbolSubscriptions.Select(x => x.Symbol.SymbolId).OrderBy(x=>x));
        }
    }

公共类策略订阅
{
公共Guid策略ID{get;set;}
公共字符串StrategyName{get;set;}
public int CapitalAllocation{get;set;}
公共列表下标符号{get;set;}
public StrategySubscription(字符串strategyName、Guid strategyId、int capitalAllocation、列表符号Subscriptions)
{
StrategyName=StrategyName;
StrategyId=StrategyId;
资本分配=资本分配;
SubscribedSymbols=symbolSubscriptions.Select(x=>x.Symbol.symbold.ToList();
//SubscribedSymbols=String.Join(“,”,symbolSubscriptions.Select(x=>x.Symbol.symbold).OrderBy(x=>x));
}
}
试试这个:

...
<DataGridComboBoxColumn Header="Symbol Subscriptions" >
    <DataGridComboBoxColumn.ElementStyle>
        <Style TargetType="{x:Type ComboBox}">
            <Setter Property="ItemsSource" Value="{Binding Path=SubscribedSymbols}" />
        </Style>
    </DataGridComboBoxColumn.ElementStyle>
    <DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="{x:Type ComboBox}">
            <Setter Property="ItemsSource" Value="{Binding Path=SubscribedSymbols}" />
        </Style>
    </DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
...
。。。
...
试试这个:

...
<DataGridComboBoxColumn Header="Symbol Subscriptions" >
    <DataGridComboBoxColumn.ElementStyle>
        <Style TargetType="{x:Type ComboBox}">
            <Setter Property="ItemsSource" Value="{Binding Path=SubscribedSymbols}" />
        </Style>
    </DataGridComboBoxColumn.ElementStyle>
    <DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="{x:Type ComboBox}">
            <Setter Property="ItemsSource" Value="{Binding Path=SubscribedSymbols}" />
        </Style>
    </DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
...
。。。
...
试试这个:

...
<DataGridComboBoxColumn Header="Symbol Subscriptions" >
    <DataGridComboBoxColumn.ElementStyle>
        <Style TargetType="{x:Type ComboBox}">
            <Setter Property="ItemsSource" Value="{Binding Path=SubscribedSymbols}" />
        </Style>
    </DataGridComboBoxColumn.ElementStyle>
    <DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="{x:Type ComboBox}">
            <Setter Property="ItemsSource" Value="{Binding Path=SubscribedSymbols}" />
        </Style>
    </DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
...
。。。
...
试试这个:

...
<DataGridComboBoxColumn Header="Symbol Subscriptions" >
    <DataGridComboBoxColumn.ElementStyle>
        <Style TargetType="{x:Type ComboBox}">
            <Setter Property="ItemsSource" Value="{Binding Path=SubscribedSymbols}" />
        </Style>
    </DataGridComboBoxColumn.ElementStyle>
    <DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="{x:Type ComboBox}">
            <Setter Property="ItemsSource" Value="{Binding Path=SubscribedSymbols}" />
        </Style>
    </DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
...
。。。
...

尝试使用模板列对其进行更多控制:

<DataGridTemplateColumn Header="Symbol Subscriptions">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding SubscribedSymbols}"/>
        </DataTemplate>
     </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>


问题的原因是DataGridColumns不是可视化树的一部分。请参阅此处的更多说明:

尝试使用模板列对其进行更多控制:

<DataGridTemplateColumn Header="Symbol Subscriptions">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding SubscribedSymbols}"/>
        </DataTemplate>
     </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>


问题的原因是DataGridColumns不是可视化树的一部分。请参阅此处的更多说明:

尝试使用模板列对其进行更多控制:

<DataGridTemplateColumn Header="Symbol Subscriptions">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding SubscribedSymbols}"/>
        </DataTemplate>
     </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>


问题的原因是DataGridColumns不是可视化树的一部分。请参阅此处的更多说明:

尝试使用模板列对其进行更多控制:

<DataGridTemplateColumn Header="Symbol Subscriptions">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding SubscribedSymbols}"/>
        </DataTemplate>
     </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>


问题的原因是DataGridColumns不是可视化树的一部分。请参阅此处的更多说明:

谢谢您,这非常有效。请你看一下下面的内容好吗?我尝试为DevExpress Gridcontrol实现同样的功能:谢谢你,它工作得非常好。请你看一下下面的内容好吗?我尝试为DevExpress Gridcontrol实现同样的功能:谢谢你,它工作得非常好。请你看一下下面的内容好吗?我尝试为DevExpress Gridcontrol实现同样的功能:谢谢你,它工作得非常好。请你看一下下面的内容好吗?我尝试为DevExpress Gridcontrol实现同样的功能:谢谢你,它工作得非常好。请你看一下下面的内容好吗?我试着为一个DevExpress网格控件实现同样的功能:(附言:最后我必须在提交的时间之前选择答案,因为我发现它们同样好)。谢谢你,这非常有效。请你看一下下面的内容好吗?我试着为一个DevExpress网格控件实现同样的功能:(附言:最后我必须在提交的时间之前选择答案,因为我发现它们同样好)。谢谢你,这非常有效。请你看一下下面的内容好吗?我试着为一个DevExpress网格控件实现同样的功能:(附言:最后我必须在提交的时间之前选择答案,因为我发现它们同样好)。谢谢你,这非常有效。请你看一下下面的内容好吗?我试着为一个DevExpress网格控件实现同样的功能:(附言:我最终不得不在提交时选择答案,因为我发现它们同样好)。