チェックボックスを使用したdatagridtemplatecolumn
-
28-10-2019 - |
質問
列の1つがチェックボックスである動的なデータグリッドがあります。 Datagridの列をそのクラスのさまざまなプロパティにバインドする「トランザクション」クラスを作成しました。チェックボックスを整数であるプロパティにバインドしたいと思います。クエリからデータベースにプロパティを埋め込んでいるため、整数です。考えられる整数は、1(true)または0(false)のいずれかです。これが私のデータベースを作成するためにこれまでに持っているものです:
private DataGridTemplateColumn GetVoidColumn()
{
DataGridTemplateColumn voidColumn = new DataGridTemplateColumn();
voidColumn.Header = "Void";
Binding bind = new Binding("Visible");
bind.Mode = BindingMode.TwoWay;
// Create the CheckBox
FrameworkElementFactory voidFactory = new FrameworkElementFactory(typeof(CheckBox));
voidFactory.SetValue(CheckBox.IsCheckedProperty, bind);
DataTemplate voidTemplate = new DataTemplate();
voidTemplate.VisualTree = voidFactory;
voidColumn.CellTemplate = voidTemplate;
return voidColumn;
}
私の実際のDatagridには、チェックボックスが表示されますが、プロパティが1を表示している場合でも、それらは常にチェックされていません。行の検証を行ったとしても、列に表示される値は正しいです。行のアイテムアレイ。何らかの理由でチェックボックスがUIでチェックされていないということです。誰かがこれで私を助けることができますか?
解決
使用できます Converters
プロパティ値0と1をfalse and trueに変換します。おそらくiScheckedプロパティは価値0と1を理解していません。 IValueConverter
そのコンバーターを適用して、INTをブールに変換します。
別のオプションは、クラスでこのプロパティを作成することです
public bool IsChecked
{
get
{
if(IntProperty == 0)
return false;
return true;
}
set
{
if(value)
IntProperty = 1;
else
IntProperty = 0;
}
}
現在、上記のプロパティでバインドするINTプロパティでバインドする代わりに
所属していません StackOverflow