Dobrý den, Pokud umístím do nějakého ContentControlu (v příkladu Button) ovládací prvek př. TextBlock a jeho hodnotu Text nabinduji na např. slider, tak se binding chová jak má.
<StackPanel>
<Button HorizontalContentAlignment="Stretch">
<TextBlock HorizontalAlignment="Stretch" Text="{Binding Value, ElementName=Sld}" />
</Button>
<Slider x:Name="Sld" />
</StackPanel>
Já potřebuji vytvořit vlastní control s contentem. Dědím ho tedy od ContentControl a přepisuji mu style podle mé potřeby. Přidávám ContentPresenter pro zobrazení obsahu.
<!-- Rectangle Frame -->
<Style TargetType="{x:Type ....}" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ...}">
<Grid x:Name="MainGrid"
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
ClipToBounds="True">
<!-- nějaké kreslení -->
<!-- Content -->
<ContentPresenter VerticalAlignment="Center"
HorizontalAlignment="Center"
Content="{TemplateBinding Content}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Jenže mi nefunguje binding na prvky vložené v contentu mého contentcontrolu. Nevěděl by někdo co je špatně ? Ps.: Nelze mi ani nastavit název x:Name controlu v mém user contentcontrolu. Error 1 Cannot set Name attribute value 'Xxxx' on element 'TextBlock'. 'TextBlock' is under the scope of element 'UserContentControlTest', which already had a name registered when it was defined in another scope. Line 9 Position 94.
|