gpt4 book ai didi

wpf - 我可以把这个绑定(bind)变成一种风格吗?

转载 作者:行者123 更新时间:2023-12-02 17:52:35 26 4
gpt4 key购买 nike

我想采用我目前拥有的用于组合框(如下)的 xaml,并将其压缩成如下所示的样式。我认为这应该可行,但我有一个“键入”问题并且不确定如何解决它

"Cannot resolve the Style Property 'Margin'. Verify that the owning type is the Style's TargetType, or use Class.Property syntax to specify the Property.)

当我查看现有的 ComboBoxStyle(也在下面)时,我希望以此作为新样式的基础,我发现我没有使用 x:Type,但它似乎确实有效。

这种新风格有什么理由不奏效吗?我必须改变什么?

干杯,
贝瑞尔

组合框,按原样工作):

<ComboBox 
x:Name="cboDepartmentFilter" Style="{StaticResource ComboBoxStyle}"
Margin="{StaticResource FliterPanelItem_Margin}" Width="{StaticResource FilterPanelItem_Width}"
ItemsSource="{Binding Path=DepartmentFilterControl.Choices}"
ToolTip="{Binding DepartmentFilterControlData.ToolTipTitle}"
/>

我想要的:

<ComboBox Style="{StaticResource FilterPanelComboBoxStyle}" DataContext="{Binding DepartmentFilterControl}"  />

<!- in some resource file ->
<Style x:Key="FilterPanelComboBoxStyle" BasedOn="{StaticResource ComboBoxStyle}">
<Setter Property="Margin" Value="{StaticResource FliterPanelItem_Margin}" />
<Setter Property="Width" Value="{StaticResource FilterPanelItem_Width}" />
<Setter Property="ItemsSource" Value="{Binding Choices}" />
<Setter Property="ToolTip" Value="{Binding ToolTipTitle}" />
</Style>

<!--

此样式为过滤器面板中的项目定义了一个公共(public)边距。 --> 150

现有的 ComboBoxStyle:

<!-- ComboBox Style -->
<Style x:Key="ComboBoxStyle" TargetType="ComboBox">
<Setter Property="Background" Value="{StaticResource headerBrush}" />
...
<Setter Property="Template">
<Setter.Value>
...
</Setter.Value>
</Setter>

<Setter Property="ItemContainerStyle" Value="{StaticResource ComboBoxItemStyle}" />
<Setter Property="IsSynchronizedWithCurrentItem" Value="True" />

</Style>

最佳答案

您仍然需要在派生样式中指定TargetType。 (或者您在属性前加上 "ComboBox.")

关于wpf - 我可以把这个绑定(bind)变成一种风格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6392270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com