Я определил стиль в app.xaml
. Этот стиль содержит несколько текстовых текстовых блоков, которые я хотел бы контролировать, когда применяю стиль к объекту, в данном случае UserPin.
Как я могу получить доступ к этим средам выполнения TextBlocks?
Я получаю стиль по:
Style = Application.Current.Resources["UserPin"] as Style;
Стиль выглядит так:
<Style x:Name="UserPin" TargetType="RRML_UserControls:UserPin" >
<Setter Property="RenderTransformOrigin" Value="0.5,0.5" />
<Setter Property="AnchorPoint" Value="0.5,0.5" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RRML_UserControls:UserPin">
<Grid Height="71.969" Width="Auto">
<Grid.RenderTransform>
<ScaleTransform x:Name="PART_PinScale" />
</Grid.RenderTransform>
<Grid.RowDefinitions>
<RowDefinition Height="29"/>
<RowDefinition Height="16"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.247*"/>
<ColumnDefinition Width="20"/>
<ColumnDefinition Width="0.753*"/>
</Grid.ColumnDefinitions>
<Image Height="Auto" Source="Resources/Users.png" x:Name="PART_imgUser" VerticalAlignment="Top" Stretch="Uniform" Margin="0,0,0,0" Grid.Column="1">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,0" Width="Auto" Grid.Column="0" Grid.ColumnSpan="3" Grid.Row="1" TextWrapping="Wrap" VerticalAlignment="Center" TextAlignment="Center" x:Name="txtBottom" Text="{Binding Mode=OneWay, Path=LocationName}">
<TextBlock.DataContext>
<RRML_RRMLServiceReference:Location LocationName="Initial Name"/>
</TextBlock.DataContext>
</TextBlock>
<TextBlock HorizontalAlignment="Right" Margin="0,0,0,0" VerticalAlignment="Center" Text="L" TextWrapping="Wrap"/>
<TextBlock Margin="0,0,0,0" Text="R" TextWrapping="Wrap" d:LayoutOverrides="Width, Height" Grid.Column="2" HorizontalAlignment="Left" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Значение TextBlock
, которое я пытаюсь установить, равно txtBottom
.
Как вы можете видеть, я попытался применить текстовый текст и привязку данных к полю. Это работает, но все объекты, конечно, получают значение «Начальное имя».
Мои вопросы:
- как я могу применить мой текст данных, чтобы
txtBottom.Text
изменился, или
- как я могу изменить значение
TextBlock
с именем txtBottom
без привязки данных?
- короче могу ли я получить доступ к этим полям или свойствам вообще?
Runtime :)
До сих пор я обнаружил, что триггеры могут использоваться только в WPF.
Я думаю о чем-то вроде этого:
var styledobject = new NiceObject();
styledobject.Style = Application.Current.Resources["UserPin"] as Style;
styledobject.DataContext = locationData;
Где locationData
- мой объект, содержащий данные.
Если кто-то задается вопросом; Я размещаю значки на карте и хочу назвать их.