[英]Accessing Properties of elements in a Data Template
如何從c#中訪問以下XAML代碼中的Textblock(txtlink)屬性? 引用txtlink。 不起作用,它會導致錯誤
txtlink名稱在當前上下文中不存在
<Grid Grid.Row="1">
<ListBox ItemsSource="{Binding CurrentRss.Channel.NewsItems}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Style="{StaticResource ImageButtonStyle}" Click="Button_Click" >
<Image Source="{Binding Image}"/>
</Button>
<TextBlock Grid.Column="1" Text="{Binding Title}"/>
<TextBlock x:Name="txtlink" Text="{Binding Link}" Background="Black" Foreground="#FFD1DA0B"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
使用SelectedItem綁定,那么您將有權訪問所選項目。 從那里您可以訪問Link屬性。
xaml:
<ListBox ItemsSource="{Binding CurrentRss.Channel.NewsItems}" SelectedItem="{Binding SelectedNewsItem}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Style="{StaticResource ImageButtonStyle}" Click="Button_Click" >
<Image Source="{Binding Image}"/>
</Button>
<TextBlock Grid.Column="1" Text="{Binding Title}"/>
<TextBlock x:Name="txtlink" Text="{Binding Link}" Background="Black" Foreground="#FFD1DA0B"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
並在您的ViewModel中:
public NewsItem SelectedNewsItem {get;set;}//INPC when it is being set check for null and then process the selected item.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.