私はWPFが新しく、ListViewにカスタムオブジェクトのリストを設定しようとするといくつかの問題があります。WPFデータバインディングの問題
internal class ApplicationCode
{
public int Code { get; set; }
public IEnumerable<string> InstrumentCodes { get; set; }
}
私はListViewにItemsSourceに設定したApplicationCodeのリストを持っています。私は文字列としてApplicationCode.Codeを表示し、列名がInstrumentCodesコレクションに含まれているかどうかに応じてチェック/チェック解除できるチェックボックスを残りの列に対して表示する必要があります。
私はデータバインディングでコンバータを使用する]チェックボックスを設定するために:私はバインディングとIセルデータの時点で現在の列であるかを知ることができないので、私が持っている問題がある
<DataTemplate x:Key="InstrumentCodeTemplate">
<CheckBox IsEnabled="False" IsChecked="{Binding Mode=OneTime, Converter={StaticResource InstrumentSelectionConverter}}" />
</DataTemplate>
をConverterParameterを設定できません。
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
ApplicationCode appCode = value as ApplicationCode;
return appCode != null && appCode.InstrumentCodes.Contains(parameter.ToString());
}
小さな例:
Id | Code1 | Code3 | Code4
--------------------------------
123 | True | False | True
データ行1:ApplicationCode.InstrumentCodes {CODE1、Code4}
列インデックスまたは名前を見つける方法はありますか?あるいは、この問題を解決する別の方法がありますか?
ListViewのバインド用のXAMLコードは何ですか? –
こんにちはマーティン。バインディングはコードの背後にあります:AcnList.ItemsSource = repository.GetApplicationCodes(); GetApplicationCodesはList –
Costin