我还在学习 Caliburn.micro,所以这可能是一个愚蠢的问题。我有一个 ListView,里面有一个 GridView。我希望能够单击一行并让它更改 ListView 之外的 TextBlock 的文本。
<TextBlock x:Name="titleText" Grid.Row="6" Grid.Column="4" Text="View a report of all current applications" TextWrapping="Wrap" Margin="5" VerticalAlignment="Center" FontWeight="Bold" />
<ListView VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="listView1" SelectedItem="{Binding Key}" ItemContainerStyle="{DynamicResource CustomListViewItemStyle}" AlternationCount="2"
ItemsSource="{Binding}" DataContext="{StaticResource OrderGroup}" Grid.Column="2" Grid.Row="10" Grid.ColumnSpan="5" Height="200" cal:Message.Attach="[Event MouseLeftButtonUp]=[Action HandleClick($eventArgs)]">
<ListView.View>
<GridView AllowsColumnReorder="False" x:Name="GridView1">
<GridViewColumn Header="Client Name" DisplayMemberBinding="{Binding Path=ClientName}" ></GridViewColumn>
<GridViewColumn Header="Application ID" DisplayMemberBinding="{Binding Path=ID}" ></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
如您所见,我正在调用 cal:Message.Attach 来处理 MountLeftButtonUp 事件。
这将调用以下代码:
public void HandleClick(RoutedEventArgs e)
{
titleText= "SOME TEST HERE";
}
并且titleText(我要更新的TextBlock)定义如下:
String _titleText = "";
public string titleText
{
get { return _titleText; }
set
{
if (_titleText != value)
{
_titleText = value;
NotifyOfPropertyChange(() => _titleText);
}
}
}
但是,这不会更新 TextBlock。单步进入代码,看到代码中titleText发生了变化,但是没有显示出来。我也将其更改为在单击图像时执行相同的操作,并且成功运行。
那么我可能会在这里遗漏一些东西吗?任何有 Caliburn.micro 经验的人。
谢谢。
泥泞的