[英]Getting Control of RadioButton WPF
這是我在xaml中所擁有的:
<DataGrid Name="dataGrid">
<DataGridTemplateColumn Header = "Base" Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<RadioButton Grid.Column="0" GroupName="{Binding Index}" Name="ABCD" Content="ABCD" IsChecked="True" Checked="radioButton_Checked"/>
<RadioButton Grid.Column="1" GroupName="{Binding Index}" Name="XYZ" Content="XYZ" Checked="radioButton_Checked" />
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid>
以下是某些函數(任何)xaml.cs中的一些代碼:
DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(i);
FrameworkElement radioButton = dataGrid.Columns[0].GetCellContent(row) as FrameworkElement;
radioButton.Visibility = Visibility.Hidden;
當我隱藏整個單元格時,我可以隱藏可見性。 但是我想在運行時將單選按鈕的內容從“ XYZ”更改為“ HAHAHA”。 我怎樣才能做到這一點?
您可能可以使用值轉換器來實現此目的。 這可用於根據索引值更改名稱。
public class IndexToXYZOrHaHaHaConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var index = (int) value;
if (index > 10)
{
return "XYZ";
}
return "HaHaHa";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
您需要通過將靜態資源添加到資源字典中來創建類的實例。
<local:IndexToXYZOrHaHaHaConverter x:Key="IndexToXYZOrHaHaHaConverter"/>
然后,您需要將單選按鈕的內容從“ xyz”更改為此;
Content="{Binding Index, Converter={StaticResource IndexToXYZOrHaHaHaConverter}}"
這應該根據索引在xyz和HaHaHa之間動態切換值。 在示例中,我給出的值取決於該值是大於還是小於10,這可能不是您想要的值,因此您必須修復邏輯。 我還假設index是一個整數,如果index是其他內容,您可能也需要更改它。
轉換器非常適合根據綁定值設置屬性,綁定值並不直接對應於綁定值,例如將字符串轉換為顏色。
希望這個對你有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.