XAML Как мне создать адаптивный TextBlock? - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть следующий код XAML:

<ListBox.ItemTemplate>
    <DataTemplate>
        <Grid Background="Transparent" Loaded="OnGridLoaded">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="5" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <TextBlock Foreground="{StaticResource CaptionColorBrush}" Text="&gt;" />
            <TextBlock Grid.Column="1" Background="Transparent" Style="{StaticResource BreadCrumsTextBlock}" 
                FontWeight="{Binding IsLastElement, Converter={StaticResource LastElementToFontWeightConverter}}"
                Text="{Binding Title}" Margin="5 0 0 0" TextTrimming="CharacterEllipsis" />
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="PreviewMouseLeftButtonDown">
                    <command:EventToCommand Command="{Binding Mode=OneWay, Path=DataContext.ReturnToFolderCommand, ElementName=ChannelsTab}" CommandParameter="{Binding NodeId}" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Grid>
    </DataTemplate>
</ListBox.ItemTemplate>

Я хочу сделать TextBlock, чтобы показать весь отправленный текст.Например, если я изменить размер (развернуть), он будет отображать только текст, отправленный в первый раз (предположим, что экран восстанавливается).Может кто-нибудь помочь мне решить проблему?

1 Ответ

0 голосов
/ 06 февраля 2019

Класс, содержащий Title, должен реализовывать INotifyPropertyChanged. Ваш класс должен выглядеть примерно так:

public class Model : INotifyPropertyChanged
{
    //This is all that the interface requires
    public event PropertyChangedEventHandler PropertyChanged;

    private string _title;
    public string Title
    {
        get { return _title; }
        set
        {
            _text = value;
            if(PropertyChanged != null)
                PropertyChange(this, new PropertyChangedEventArgs("Title")); 
        }
    }
}

Если это сложный проект, я предлагаю вам использовать MVVM Framework, например MVVM-Light http://www.mvvmlight.net/ Я использовал его в прошлом для разработки Xamarin.Однако есть много других альтернатив.

Одним из преимуществ MVVM является то, что вы полностью отделяете XAML (GUI) от источника.Я обычно использую отдельные проекты, чтобы содержать MVVM и XAML.Затем вы можете создать модульные тесты для тренировки MVVM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...