簡體   English   中英

在 UserControl 中綁定 contentPresenter 的內容?

[英]Binding content of contentPresenter in UserControl?

我有一個用戶控件,它是一個修改后的切換按鈕。
我已經向它添加了兩個 String 屬性,因此我可以在混合中更改(或綁定)它們,我希望它是切換按鈕時顯示的文本。 即,選中時,顯示一個字符串,未選中時顯示另一個字符串。

設置文本沒問題,切換 UserControl 也沒問題,但我不知道如何通過觸發器從切換屬性設置 contentpresenter 的內容。 下面粗略看一下代碼:

<UserControl
    x:Name="UserControl"
    <UserControl.Resources>
        <Style x:Key="BiTextToggleButtonWithBorder" TargetType="{x:Type ToggleButton}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ToggleButton}">
                        <Grid>
                            <Path x:Name="path" 
                                Data="M28,0.5 L28.071953,0.50129622 28.092436,0.5 115.90756,0.5 C117.89162,0.50000113 119.5,2.5147196 119.5,5.0000013 L119.61492,36.460156 119.61432,36.857203 C117.1338,37.367692 108.82679,39.239366 106.37993,47.492391 L44.667,47.5 28.092436,47.5 4.9999995,47.5 C2.5147185,47.5 0.5,45.485283 0.5,43 L0.5,21 0.51801485,20.64324 0.5,20.0835 C0.5,9.2678322 12.812169,0.50000072 28,0.5 z"
                                Stretch="Fill"
                            <ContentPresenter 
                                x:Name="contentPresenter" 
                                Content="{Binding}"/>
                        </Grid>

                        <ControlTemplate.Triggers>
                            <Trigger Property="IsChecked" Value="True">
                                <Setter Property="Content" TargetName="contentPresenter" Value="{Binding whatgoeshere!?}"/>
                            </Trigger>
                            <Trigger Property="IsChecked" Value="False">
                                <Setter Property="Content" TargetName="contentPresenter" Value="whatgoeshere!?"/>
                            </Trigger>
                        </ControlTemplate.Triggers>

                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>

    <Grid x:Name="LayoutRoot">
        <ToggleButton
            x:Name="ToggleButton"
            Style="{DynamicResource BiTextToggleButtonWithBorder}"
            FontSize="18.667"
            Foreground="{DynamicResource WhiteText}"/>
    </Grid>
</UserControl>

我什至找不到要更改的屬性。 我之前已經對 UserControl 中的對象進行了類似的綁定,但在樣式和 controlpresenter 中都沒有。

我錯過了什么?

您是否嘗試將{Binding}更改為{TemplateBinding} 此處為 MSDN 文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM