我有以下XAML代码:
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="Transparent" Loaded="OnGridLoaded">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Foreground="{StaticResource CaptionColorBrush}" Text=">" />
<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
显示所有发送的文本。例如,如果我调整大小(扩展),它将仅显示第一次发送的文本(假设屏幕已还原)。谁能帮我解决问题?
答案 0 :(得分:0)
包含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-Light http://www.mvvmlight.net/之类的MVVM框架,我过去在Xamarin开发中就使用过它。但是,还有许多其他选择。
MVVM的优点之一是,您可以将XAML(GUI)与源代码完全分离。我通常使用单独的项目来包含MVVM和XAML。然后,您可以创建单元测试以练习MVVM。